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

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

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

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


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

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

$ identifie rose.jpg

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

2 ответа2

1

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

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

for /R %%X in (*.jpg) do identify %%X >> PicInfo.txt

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

1

Ваш вопрос немного сложен для понимания.  Я предполагаю, что вы сделали что-то вроде

@echo off
for %%X in (*.jpg) do (
    identify "%%X" > "otherdir\%%X.id"
)

в какой-то момент в прошлом создавались файлы с именами вроде rose.jpg.id , и теперь вы хотите убедиться, что файлы JPEG не изменились.  Я предлагаю

@echo off
for %%X in (*.jpg) do (
    identify "%%X" > "tempdir\%%X.id.tmp"
    fc "tempdir\%%X.id.tmp" "otherdir\%%X.id" > nul
    if errorlevel 1 (
        echo "tempdir\%%X.id.tmp" and "otherdir\%%X.id" differ.
    ) else (
        del "tempdir\%%X.id.tmp"
    )
)

fc - программа сравнения файлов в командной строке Windows.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .