Windowsコマンド虎の巻

for

forは、ループ処理を行うコマンドです。

構文

【ファイルをループする構文】 FOR [オプション] %%変数 IN (対象ファイル or ディレクトリ) DO <実行コマンド>
【値をループする構文】 FOR /L %%変数 IN (開始値, 増分, 終了値) DO <実行コマンド>

変数はアルファベット1文字で指定してください。

変数は大文字小文字は区別されます。

【オプション】
オプション説明
/Dディレクトリを処理対象とする
/L値をループ処理する
/Rサブディレクトリ内も再帰的に参照する
/F
/?コマンドのヘルプを表示する

サンプル

変数を10~12まで増分1でループする

(test1.bat)

@echo off for /l %%i in (10,1,12) do ( echo %%i )

(実行結果)

c:¥>test1.bat 10 11 12

カレントディレクトリ直下(サブディレクトリ内は含まない)にある拡張子が.txtのファイルのファイル名と内容を全件表示する

@echo off for %%i in (*.txt) do ( echo 読込ファイル名:%%i type %%i )

絶対パスで指定したい場合は、「*.txt」の箇所を「C:¥test¥*.txt」のように記述できます。

カレントディレクトリ配下(サブディレクトリ内も含む)にある拡張子が.txtのファイルのファイル名と内容を全件表示する

@echo off for /r %%i in (*.txt) do ( echo 読込ファイル名:%%i type %%i )

カレントディレクトリ内のディレクトリ名を表示する

@echo off for /d /r %%i in (*) do ( echo 読込ディレクトリ名:%%i )

C:¥test.txtファイルの中身を表示する

@echo off setlocal set fp=C:¥test.txt for /f %%i in (%fp%) do ( echo %%i )

コマンド「dir /b」の実行結果を1行づつ解析する

@echo off for /f %%i in ('dir /b') do ( :結果を1行づつ解析 echo %%i )

備考

  • FOR文内のカウンタ変数は、以下のルールにご注意ください。
    ・変数定義時は%%を付ける
    ・変数名は英字1字
    ・大文字小文字は区別される
  • for構文内でよく使用される遅延環境変数については、以下ページをご覧ください。
    setlocal 遅延環境変数