BATファイルで特定フォルダ以下の特定の拡張子のファイルに対して処理を実行する方法
例として以下の条件で考えます。
- フォルダ: Desktop
- 拡張子: *.txt
このとき、Desktop
フォルダ以下の*.txt
ファイルの一覧は以下のコマンドで表示できます。
dir /s /b Desktop\*.txt
/s
は再帰検索、/b
はファイル名のみ表示するオプションです。少し気持ち悪い指定ですが、これでDesktop
以下の全てのサブディレクトリに存在する*.txt
ファイルを表示できます。
ファイル一覧が表示できたので、この結果をfor
文に渡します。
例として、ファイルリストの前後にAAA
とBBB
を付けてecho
します。
for /f "usebackq tokens=*" %%i in (`dir /s /b Desktop\*.txt`) do @echo AAA %%i BBB
これで echo AAA %%i BBB
にファイル一覧が渡り、前後にAAA
とBBB
が付きました。