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重ループ(入れ子)になっています。
実行結果は以下になります。
関連の記事