2009-04-24 2 views
6

Какой самый быстрый способ с использованием либо DOS сценариев или PowerShell для запуска этой простой команды на каталог и все его подкаталоги:Выполните простую команду с помощью PowerShell рекурсивно каталога

convert filename.jpg -resize 620x620 "R:\processed\filename.jpg" 

DOS Batch сценарий для одного каталога:

FOR %%a in (*.jpg) DO convert %%a -resize 620x620 "R:\processed\%%a" 

Я хочу, чтобы запустить этот рекурсивно структуру каталогов и имеют выход соответствует иерархии ввода. Я полагал, что PowerShell был самым простым способом, но я не смог изучить PowerShell за 5 минут, я должен выполнить эту задачу!

Примечание: не важно, но convert от ImageMagick.

ответ

21

В PowerShell:

Используйте -recurse переключатель и трубы к каждому элементу. Например, для: например,

dir -recurse -include *.jpg | %{convert $_.FullName -resize 620x620 "R:\processed\$_"} 

(Обратите внимание, что знак% является псевдонимом объекта foreach).

+0

спасибо. извините за ленивость. я проверю его –

+0

@ dangph Спасибо за разъяснение! – zdan

+0

«R: \ обработанное \ $ _. Имя» должно быть «R: \ обработано \ $ ($ _. Name)», чтобы получить имя файла в строке. –

Смежные вопросы