バッチファイルのループ処理は for 文で行います。ファイル・フォルダ・数値・CSV など様々なパターンを解説します。
forコマンドの基本パターン
| パターン | 書き方 | 用途 |
|---|
| リストループ | for %%i in (A B C) do | 指定した値を順に処理 |
| ファイルループ | for %%f in (*.txt) do | ファイルを一覧処理 |
| 数値ループ | for /l %%i in (1,1,10) do | 数値を増加させながら処理 |
| フォルダループ | for /d %%d in (*) do | フォルダを一覧処理 |
| 再帰ループ | for /r %%f in (*.log) do | サブフォルダも含めて処理 |
| テキストループ | for /f %%l in (file.txt) do | ファイルを1行ずつ処理 |
数値ループ(/l オプション)
@echo off
:: for /l %%変数 in (開始,増分,終了) do 処理
for /l %%i in (1,1,5) do (
echo %%i回目の処理
)
:: カウントダウン
for /l %%i in (10,-1,1) do (
echo カウント: %%i
)
ファイルを一括処理する
@echo off
:: カレントフォルダの全テキストファイルを処理
for %%f in (*.txt) do (
echo 処理中: %%f
echo ファイル名のみ: %%~nf
echo 拡張子のみ: %%~xf
echo フルパス: %%~ff
)
%%~修飾子一覧(forループで使うファイル情報)
| 修飾子 | 意味 | 例 |
|---|
| %%~f | フルパス | C:olderile.txt |
| %%~d | ドライブ文字 | C: |
| %%~p | パス(フォルダ部分) | older |
| %%~n | ファイル名(拡張子なし) | file |
| %%~x | 拡張子のみ | .txt |
| %%~z | ファイルサイズ(バイト) | 1024 |
| %%~t | 更新日時 | 2026/04/02 09:00 |
サブフォルダも含めて再帰処理(/r オプション)
@echo off
:: C:logs以下の全.logファイルを処理
for /r "C:logs" %%f in (*.log) do (
echo 見つかったログ: %%f
)
まとめ
for /l で数値のカウントアップ・カウントダウンループができるfor %%f in (*.拡張子) でファイルを一括処理できるfor /r でサブフォルダを含む再帰処理ができる%%~n などの修飾子でファイル名・拡張子・パスを個別に取得できる- 次の記事ではファイル・フォルダ操作コマンドを学ぶ
コメント