コスギデンサン >> 情報系メモ >> Windows

ループ内のインクリメント

@echo off
          


set NUM=0

for /L %%i in (1, 1, 5) do (
	set /A NUM=NUM+1
	echo %NUM%
)
実行結果
0
0
0
0
0
@echo off
          
setlocal enabledelayedexpansion

set NUM=0

for /L %%i in (1, 1, 5) do (
	set /A NUM=NUM+1
	echo !NUM!
)
実行結果
1
2
3
4
5
 
  • Windowsバッチファイルの変数は実行時に展開され値が割り振られる。
  • "setlocal enabledelayedexpansion"を指定することにより、実行中に変数の値が展開される(遅延環境変数)。
  • 遅延環境変数を表示するには!(変数名)!と記述する。