在目录上以递归方式使用PowerShell运行简单命令

时间:2009-04-24 00:05:26

标签: powershell imagemagick

使用DOS脚本或PowerShell在目录及其所有子目录上运行此简单命令的最快方法是什么:

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

单个目录的DOS批处理脚本

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

我希望在目录结构上递归运行,并使输出与输入层次结构匹配。我认为PowerShell是最简单的方法,但我无法在5分钟内学习PowerShell,我必须完成这项任务!

注意:并非相关,但convert来自ImageMagick

1 个答案:

答案 0 :(得分:25)

在PowerShell中:

使用-recurse开关和管道进行foreach。例如:

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

(请注意,%符号是foreach-object的别名)。