2009-04-24 1 views
6

に再帰的にPowerShellを使用して簡単なコマンド:を実行したディレクトリとそのすべてのサブディレクトリに、この単純なコマンドを実行する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を学ぶことができませんでした。

注:関連性はありませんが、convertImageMagickです。 PowerShellで

答えて

21

はforeachのために-recurseスイッチとのパイプを使用してください。例えば:

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

(%記号はforeach-objectのエイリアスです)。

+0

ありがとうございました。怠け者であることをお詫び申し上げます。私はそれをテストします –

+0

@dangph説明をありがとう! – zdan

+0

"R:\ processed \ $ _。Name"は "R:\ processed \ $($ _。Name)"で、文字列内のファイル名を取得する必要があります。 –

関連する問題