| Delayed Expansion [in loops].cmd |
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:
| The Code for: "Delayed Expansion [in loops].cmd" |
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
Please note that that I am not trying to show how great I am by producing batch files 9,000 characters long on one line that no one will understand or be able to debug when they go wrong. I am going out of my way to comment the code and make it verbose so beginners and advanced users will both benefit. I don't claim to be an expert that knows everything, if I'm wrong or make a mistake then please contact me and let me know :-)
![]() | ![]() |