batファイル for文 処理を繰り返すサンプル

Windowsのbatファイル(バッチファイル)のfor文で処理を繰り返すサンプルです。

目次

サンプル For文
  増分を使用する
  ループを途中で終了する
  ループで処理をスキップする
  for文が2重ループ(入れ子)のサンプル
  遅延変数のサンプル(if文/for文の注意点)※別ページ

For文

for /l %%変数 in (開始値,増減分,終了値) do (
  処理
)
  • 処理を繰り返す時に使用します。最初にforを書くのでfor文と呼ばれます。
  • 変数が開始値から終了値の範囲内の間、繰り返します。
  • /lは、%%変数の値を使用するときに必要です。
  • 増減分はループする変数の増減値を指定します。マイナス値の指定も可能です。

for文のサンプルです。

@echo off

for /l %%i in (1,1,5) do (
	echo ループ:%%i
)
echo -----
for /l %%i in (5,-1,1) do (
	echo ループ:%%i
)
pause

3行目は、1から5の増分1で処理を繰り返します。
7行目は、5から1の減分1で処理を繰り返します。

実行結果は以下になります。

 

増分を使用する

@echo off

for /l %%i in (1,2,5) do (
	echo ループ:%%i
)
echo -----
for /l %%i in (5,-2,1) do (
	echo ループ:%%i
)
pause

3行目は、増分が2です。
7行目は、減分が2です。

 

ループを途中で終了する

@echo off

for /l %%i in (1,1,5) do (
	if %%i==3 (
		goto:END
	)
	echo %%i
)
:END
pause

5行目のgotoでfor文を抜けます。
7行目は、1と2のみ出力されます。

 

ループで処理をスキップする

@echo off

for /l %%i in (1,1,3) do (
	if not %%i==2 (
		echo %%i
	)
)
pause

4行目は、否定のnotで2のときは、処理されません。
5行目は、1と3のみ出力されます。

 

for文が2重ループ(入れ子)のサンプル

@echo off

for /l %%i in (1,1,2) do (
	for /l %%j in (1,1,2) do (
		echo ループ2:%%j
	)
	echo ループ1:%%i
)
pause

3,4行目にfor文があり2重ループ(入れ子)になっています。

実行結果は以下になります。

関連の記事

batファイル If文のサンプル(Windows)

△上に戻る