I am new to Windows batch script, and probably this is a general question answered several times. I have a problem in the following script:
@echo off
setlocal ENABLEDELAYEDEXPANSION
set var1=1
echo var1 = %var1%
set var2=var1 init value : %var1%, var1 delayed value : !var1!
set var1=2
echo var1 = %var1%
echo var2 = !var2!
endlocal
Current Output:
var1 = 1
var1 = 2
var2 = var1 init value : 1, var1 delayed value : 1
however, the desired result should be:
var1 = 1
var1 = 2
var2 = var1 init value : 1, var1 delayed value : 2
How can this be achieved, any ideas? How does var2 somehow reevaluate after var1 changes its value? Thanks in advance!
source
share