くんすとの備忘録

プログラミングや環境設定の覚え書き。

BATファイルで特定フォルダ以下の特定の拡張子のファイルに対して処理を実行する方法

例として以下の条件で考えます。

  • フォルダ: Desktop
  • 拡張子: *.txt

このとき、Desktopフォルダ以下の*.txtファイルの一覧は以下のコマンドで表示できます。

dir /s /b Desktop\*.txt

/sは再帰検索、/bはファイル名のみ表示するオプションです。少し気持ち悪い指定ですが、これでDesktop以下の全てのサブディレクトリに存在する*.txtファイルを表示できます。

ファイル一覧が表示できたので、この結果をfor文に渡します。 例として、ファイルリストの前後にAAABBBを付けてechoします。

for /f "usebackq tokens=*" %%i in (`dir /s /b Desktop\*.txt`) do @echo AAA %%i BBB

これで echo AAA %%i BBBにファイル一覧が渡り、前後にAAABBBが付きました。

広告