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...
This is the example, a shortcut was installed to this code
:
@echo off
@echo off
::@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
:: $Header: C:/DBAREIS/Projects.PVCS/Win32/ScriptingTipsAndTricks/EXAMPLE[cmd].Delayed Expansion [in loops].cmd.pvcs 1.0 11 Jul 2014 19:31:00 USER "Dennis" $
::@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
setlocal ENABLEDELAYEDEXPANSION
::##########################################
echo.
echo **** METHOD 1 (needs "ENABLEDELAYEDEXPANSION") ****
set VAR=oops
for /L %%i in (1,1,10) do (
set VAR=%%i - WORKED
echo %%i : !VAR!
)
::##########################################
echo.
echo **** METHOD 2 (much clearer code, possibly slightly slower) ****
set VAR=oops
for /L %%i in (1,1,10) do call :Loop1 %%i
goto :EOF
::+++++++
:Loop1
::+++++++
set VAR=%1 - WORKED
echo %1 : %VAR%
goto :EOF