バッチファイル : for文による繰り返し処理 (forループの書式)

バッチファイルでのfor文による繰り返し処理を紹介します。

概要

バッチファイルで繰り返し処理をする場合は、for文を利用します。

書式

FOR (オプション) [変数] IN (セット) DO (
  処理1
  処理2
  ...
)

1行で記述する場合は次の書式になります。

FOR (オプション) [変数] IN (セット) DO 処理


オプションは以下の値をとります。

オプション 意味
(指定しない) ファイル名を対象
/D ディレクトリ名(フォルダ名)を対象
/R ディレクトリ名及びそのサブディレクトリ内のファイル名を対象
/L 値を指定
/F テキストファイル内の文章に対してトークンを取り出す

例1: 数値で指定した回数ループする

変数 v の値を1から1ずつ10まで増加させてループします。

コード

@ECHO OFF

FOR /L %%v IN (1,1,10) DO (
  ECHO 出力: %%v
)

実行結果

バッチファイルを実行すると下図の結果となります。
10回ループ処理が実行されている動作が確認できます。
バッチファイル : for文による繰り返し処理 (forループの書式):画像1

例2: 一致するファイルに対してループする

以下のバッチファイルを作成します。

コード

@ECHO OFF

FOR %%n IN (*.txt) DO (
  ECHO ファイル名: %%n
)

解説

バッチファイルを実行した際のカレントディレクトリで、*.txt ファイルにマッチするファイルに対してループ処理を実行します。 %%n 変数にはファイル名が代入されます。

FOR %%n IN (*.txt) DO (
  ECHO ファイル名: %%n
)

ファイルの配置

ファイルを以下のディレクトリに配置します。バッチファイルと同じ位置に price.txt stock.txt puroduct.txt の3つのテキストファイルを配置します。

バッチファイル : for文による繰り返し処理 (forループの書式):画像2

実行結果

バッチファイルを実行します。3つの*.txtファイルがありますので、ループは3回実行され、ファイル名がコンソールに出力されます。
バッチファイル : for文による繰り返し処理 (forループの書式):画像3

例3: 一致するディレクトリに対してループする

以下のバッチファイルを作成します。

コード

@ECHO OFF

FOR /D %%n IN (*) DO (
  ECHO ディレクトリ名: %%n
)

解説

/D オプションを指定しましたので、条件に該当するディレクトリをループします。条件は * としていますので、 カレントディレクトリのサブフォルダすべてに対してループ処理が実行されます。

FOR /D %%n IN (*) DO (

ディレクトリの配置

バッチファイルを配置したディレクトリにdir1 dir2 のサブディレクトリを作成します。
バッチファイル : for文による繰り返し処理 (forループの書式):画像4

実行結果

バッチファイルを実行します。下図の結果が表示されます。
ディレクトリごとにループが実行され、ディレクトリ名が表示されます。
バッチファイル : for文による繰り返し処理 (forループの書式):画像5

例4: サブディレクトリを含めてループする

以下のバッチファイルを作成します。

コード

@ECHO OFF

FOR /R %%n IN (*) DO (
  ECHO ファイル名: %%n
)

解説

/R オプションを指定しているので、サブディレクトリも含めディレクトリをループし該当するファイルを処理します。条件は * としていますので、 サブフォルダを含めたすべてのファイルに対してループ処理が実行されます。

ファイルの配置

ファイルを以下のディレクトリに配置します。 バッチファイルと同じ位置に price.txt stock.txt puroduct.txt の3つのテキストファイルを配置します。 dir1 dir2 のサブディレクトリを作成します。
バッチファイル : for文による繰り返し処理 (forループの書式):画像6

dir1ディレクトリにはdetails.txt ファイルを配置します。
バッチファイル : for文による繰り返し処理 (forループの書式):画像7

dir2ディレクトリにはid.txt ファイルを配置します。
バッチファイル : for文による繰り返し処理 (forループの書式):画像8

実行結果

バッチファイルを実行します。下図の結果が表示されます。
サブディレクトリも含めてファイルごとにループが実行され、ファイル名が表示されます。

バッチファイル : for文による繰り返し処理 (forループの書式):画像9

AuthorPortraitAlt
著者
iPentecのプログラマー、最近はAIの積極的な活用にも取り組み中。
とっても恥ずかしがり。
作成日: 2023-03-16
Copyright © 1995–2025 iPentec all rights reserverd.