web-dev-qa-db-ja.com

mogrify-Windowsのサブフォルダーをどのように再帰しますか

mogrifyコマンドオプションには、サブフォルダーも通過するように指示する単純なスイッチがあると思いました。何も見つかりませんでした。 Linuxでは、「find」コマンドでうまくいくようですが、Windowsではどうすればよいですか?

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

動作しますが、サブフォルダーを介して再帰するためにも必要です。それを行う最も簡単な方法は何ですか?

理想的には、宛先に保持され、処理された画像のみを含むソースディレクトリ構造を探しています。

2
Regmi

ImageMagickMogrifyファイルを再帰的に-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 /?)

    さらに、FOR変数参照の置換が強化されました。これで、次のオプションの構文を使用できます。

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

  • デル
2
Pimp Juice IT