@jensaarai

Как решить проблему с bat скриптом для Imagemagick для определения ширины изображения?

Приветствую, пытаюсь написать bat-ник для Imagemagick для изменения размера webp изображений в папке с подпапками в два разных размера, исходя из ширины оригинального изображения.

Проблема состоит в том, что ширина изображения не определяется и ECHO width: %Width% выдает пустое значение. Подскажите, что не так?

@echo off
pushd %1
SET /A "MaxWidth=2000"
FOR /F "delims=" %%n IN ('dir /b /s /a-d-h-s') do (
    For /F %%# in ("%~dp0identify.exe" -ping -format "%%[fx:w]" "*.webp") DO SET /A "Width=%%#"
    ECHO width: %Width%
    IF  !Width! LSS !MaxWidth! ("%~dp0mogrify.exe" "%%n" -resize 1500x2000! "%%n") ELSE ("%~dp0mogrify.exe" "%%n" -resize 2000x1500! "%%n")
)
popd
echo All done!
PAUSE
  • Вопрос задан
  • 2739 просмотров
Пригласить эксперта
Ответы на вопрос 1
@esx
Во внутреннем For параметры воспринимаются им как "список" по которому он итерирует
Следует писать так
For /F %%# in ('%~dp0identify.exe -ping -format %%[fx:w] *.webp') DO SET /A "Width=%%#"

Ординарные кавычки вокруг записи команды.
Немножко непонятно почему имя файла из dir (%n) не используется
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы