С ImageMagick вам обычно нужно установить эту переменную «filename:» сразу после чтения изображений. Попробуйте это ...
convert img1.jpg img2.jpg img3.jpg \
-set filename:f "%[t]_smol.%[e]" -resize 400x400\> "%[filename:f]"
Это считывает изображения, сразу устанавливает эти выходные имена файлов, затем выполняет операцию изменения размера, а затем записывает выходные файлы с заданными именами. Имейте в виду, что изменение порядка списка или количества изображений в команде может привести к непредвиденным результатам.
Я успешно использовал эту команду с IM 6.8.9 в bash. Он работает с версиями 6.9 и 7.0 в Windows, изменяя обратную косую черту в продолжения строки «\» на «^», удаляя обратную косую черту sh и помещая изменение размера «400x400>» в двойные кавычки.