Hopefully "ScriptingTipsAndTricks" helps you with your batch file or vbscript scripting :-)
[Bottom][Contents][Prev]: Date-Time - set up time formats YYYYMMDD, HHMMSSSS etc[Next]: Dot Net Versions - uses ASoft .NET Version Detector tool to get list
\->Batch Files->Delayed Expansion - in loops

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:

[anchor]

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 :-)


Microsoft awarded me an MVP (Most Valuable Professional award) in 2004, 2005, 2006, 2007, 2008 & 2009 for the Windows SDK (Windows Installer) area.Please email me any feedback, additional information or corrections.
See this page online (look for updates)

[Top][Contents][Prev]: Date-Time - set up time formats YYYYMMDD, HHMMSSSS etc[Next]: Dot Net Versions - uses ASoft .NET Version Detector tool to get list


ScriptingTipsAndTricks© is (C)opyright Dennis Bareis 2003-2008 (All rights reserved).
Sunday September 07 2014 at 12:50pm
Visit ScriptingTipsAndTricks's Home Page
Microsoft awarded me an MVP (Most Valuable Professional award) in 2004, 2005, 2006, 2007, 2008 & 2009 for the Windows SDK (Windows Installer) area.