问题
What's the fastest way using either DOS scripting or PowerShell to run this simple command on a directory and all its subdirectories:
convert filename.jpg -resize 620x620 "R:\processed\filename.jpg"
DOS Batch script for single directory:
FOR %%a in (*.jpg) DO convert %%a -resize 620x620 "R:\processed\%%a"
I want to run this recursively on a directory structure and have the output match the input hierarchy. I figured PowerShell was the easiest way, but I was unable to learn PowerShell in the 5 minutes I have to do this task!
Note: not that it's relevant, but convert is from ImageMagick.
回答1:
In PowerShell:
Use the -recurse switch and pipe to foreach. For e.g.:
dir -recurse -include *.jpg | %{convert $_.FullName -resize 620x620 "R:\processed\$_"}
(Note that the % sign is an alias of foreach-object).
来源:https://stackoverflow.com/questions/784057/run-a-simple-command-using-powershell-recursively-on-a-directory