Перебирать файлы в каталоге - отправлять команды с аргументами, содержащими% - PullRequest
0 голосов
/ 31 мая 2018

Эта CLI-команда на Windows-7 с установленным инструментом ImageMagick выполняет свою работу для одного файла

$convert O35C3737.jpg -gravity Center -crop 20%x+0+0  cropped20_O35C3737.jpg

Теперь я пытаюсь сделать то же самое для всех файлов в папке, содержащей BAT-файл сthis:

for %%i in (*.jpg) do convert %%i -gravity Center -crop 20%x+0+0  cc20_%%i

Очевидно, что это терпит неудачу, потому что аргумент 20% x + 0 + 0 отправляемой команды преобразования неправильно интерпретируется пакетным процессором CLI и «съедается».

Вместо желаемых преобразованных файлов я получаю пакет сообщений об ошибках с помощью команды convert, который не получает правильно ожидаемые аргументы:

$for %i in (*.jpg) do convert %i -gravity Center -crop 20i

    $convert O35C3737.jpg -gravity Center -crop 20i
    convert: invalid argument for option '-crop': 20i @ error/convert.c/ConvertImageCommand/1225.

Как мне пройти через это?

...