Сравните вывод команды "DOS" с чем-то

96
11

(DOS я имею в виду windows cmd.exe - я не хочу принудительно использовать powershell или аналогичную для конечного пользователя)

Я хочу запустить файл командной строки, который выводит вывод на CON/screen.

Я хочу захватить этот вывод и сравнить его с ожидаемым выходом.

... в файле.bat/.cmd?

В частности, команда identify ImageMagick, и я хочу запустить это поверх + 300 файлов и сравнить фактические размеры с ожидаемыми размерами.

Пример вывода:

$ ident rose.jpg

rose.jpg JPEG 640x480 sRGB 87kb 0.050u 0:01

спросил(а) 2013-02-22T15:59:00+04:00 7 лет, 1 месяц назад
1
Решение
72

Если я правильно понял вопрос, вы хотите запустить команду идентификации во всех файлах jpg в каталоге и захватить вывод этой команды в текстовый файл для последующего сравнения. Однако сравнение не является частью спецификации?

Что-то вроде строки ниже должно выполнять эту работу. Просто запустите его из папки, в которой находятся файлы jpg:

для /R %% X в (*.jpg) действительно идентифицируют %% X >> PicInfo.txt Это будет захватывать розу.jpg JPEG... строка для каждого файла.jpg, который у вас есть в каталоге (и подкаталоги, /R '), чтобы вы запустили команду и добавили ее в файл PicInfo.txt.

ответил(а) 2013-02-23T21:09:00+04:00 7 лет, 1 месяц назад
36

Вы можете вызвать вашу программу identify с символом, который перенаправляет вывод консоли в файл, который является символом >. Что-то вроде:

identify rose.jpg > myoutput.txt

Кроме того, >> добавит вывод к тому, что уже находится в файле. Поэтому использование

identify rose.jpg >> myoutput.txt

... должен создать один файл со всем вашим выходом.

Затем вы можете использовать команду DOS COMP, которая сравнивает содержимое двух файлов. Синтаксис:

COMP [data1] [data2] [/D] [/A] [/L] [/N=number] [/C] [/OFF[LINE]]

Что вы также можете перенаправить на выходной файл с помощью символа >.

ответил(а) 2013-02-22T16:34:00+04:00 7 лет, 1 месяц назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема