Delayed Expansion (in loops) |
Delayed expansion is typically not something you'd want to do but something forced on you by the batch language, specifically in how bracketed loops are implemented...
The "ENABLEDELAYEDEXPANSION" bit is required by "Method 1" in the following:
@echo off SetLocal ENABLEDELAYEDEXPANSION echo. echo **** METHOD 1 (needs "ENABLEDELAYEDEXPANSION") ***** set VAR=!!!!!!!! for /L %%i in (1,1,10) do ( set VAR=%%i - WORKED echo %%i : !VAR! ) echo. echo **** METHOD 2 ***** set VAR=!!!!!!!! for /L %%i in (1,1,10) do call :Loop1 %%i goto Next-Loop1 :Loop1 set VAR=%1 - WORKED echo %1 : %VAR% goto :EOF :Next-Loop1