Windowsバッチファイル

バッチファイルのループ処理【for文でファイル・数値・フォルダを繰り返し処理】

Windowsバッチファイル
記事内に広告が含まれています。

バッチファイルのループ処理は 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: older ile.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 などの修飾子でファイル名・拡張子・パスを個別に取得できる
  • 次の記事ではファイル・フォルダ操作コマンドを学ぶ

コメント

タイトルとURLをコピーしました