窗口批量设置里面如果不工作

当我运行这个脚本(从一个.bat文件):

set var1=true if "%var1%"=="true" ( set var2=myvalue echo %var2% ) 

我总是得到:

 ECHO is on. 

这意味着var2variables没有真正设置。 任何人都可以请帮我理解为什么?

var2被设置,但是行的echo %var2%在块被执行之前发生。
这时var2是空的。

因此,delayedExpansion语法存在,它使用! 而不是%并在执行时评估,而不是parsing时间。

 setlocal EnableDelayedExpansion set var1=true if "%var1%"=="true" ( set var2=myvalue echo !var2! )