1

Я думал, что есть простой переключатель в параметрах команды mogrify , который говорит, что он также проходит через подпапки. Я не нашел ни одного. В Linux команда " find ", кажется, добивается цели, как вы делаете это в Windows?

magick mogrify -resample 72 -resize 700x700 -format png -path "C:\ImageMagick-7.0.8-Q16\dest" *.*

работает, но мне нужно, чтобы он проходил через подпапки. Какой самый простой способ сделать это?

В идеале я ищу структуру каталогов источника, которая будет сохранена в месте назначения, но только с обработанными изображениями.

1 ответ1

1

ImageMagick Рекурсивно Mogrify файлы - Windows

Вы можете использовать цикл FOR /R для итерации файлов, начиная с корневого каталога, в котором находятся файлы, и затем запускать их над командами соответственно, как показано в примере ниже для каждого файла.

Если вы пропустите параметр -path похоже, что он будет работать с исходными файлами, в которых они находятся. Так что для простого решения сохранить исходную структуру из исходного источника, попробуйте скопировать исходную корневую папку исходных файлов в новое место, а затем переименовать эту папку.


Пример команды

Примечание. Обязательно замените C:\Source\Folder\Root на точную папку, в которой находятся файлы или подпапки файлов, которые он будет использовать для выполнения командных операций с этими файлами.

for /r "C:\Source\Folder\Root" %a in (*.*) do mogrify -resample 72 -resize 700x700 -format png "%~a"

Пример команды (с удалением)

for /r "C:\Source\Folder\Root" %a in (*.*) do mogrify -resample 72 -resize 700x700 -format png "%~a" && IF NOT [%~Xa]==[.png] DEL /Q /F "%~a"

Дополнительные ресурсы

  • FOR /R
  • Пакетные замены (ЗА /?)

    Кроме того, была улучшена замена ссылок на переменные FOR. Теперь вы можете использовать следующий необязательный синтаксис:

    %~xI        - expands %I to a file extension only
    
  • mogrify

  • Del

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