Windows バッチファイルで複数ファイルに対して一括処理を行う
Windows環境で、複数ファイルに対して、一括処理を行うようなバッチファイルの書き方を調べてみました。
バッチファイルの名前を「foldercmd.bat」、ファイルに対する処理を「filecmd.bat」として、次にサンプルを記述しました。
@echo off rem 指定フォルダ配下のファイル/ディレクトリを再帰的に rem 処理するバッチファイルサンプル rem 指定フォルダ直下のファイルに対する処理 for %%a in (%1\*) do call filecmd.bat "%%a" rem 下位フォルダを再帰的に処理 for /d %%a in (%1\*) do call foldercmd.bat "%%a"
注意点
- for文について、オプションなしの場合は、「(%1\*)」がファイルの一覧に展開されます。オプション/d付きの場合は、フォルダの一覧に展開されます。
- for文から呼び出すコマンドは1つだけらしいです。なので、ファイルに対して複数のコマンドを実行したい場合は、上記のように単一ファイル処理用のバッチファイルを作成し、その中で複数コマンドを実行する形式になると思います。
- 「%%a」をダブルクォーテーションで括っているのは、空白含むパスに対応するためです。