我正在BAT文件中进行一些简单的变量设置。 但它没有设置这个变量。 没有任何奇怪的构造,它只是使用相同的变量名进行简单的变量替换。 我将BAT文件简化为一个简单的概念验证版本:
set TESTVAR = "No Value"
ECHO var = %TESTVAR%
set TESTVAR = ""
ECHO var = %TESTVAR%
set TESTVAR = "New value"
ECHO var = %TESTVAR%
输出显示似乎没有任何SET命令能够工作。我在这里缺少什么?我写BAT文件已经好几年了,但我以前从来没有见过这种情况。以下是运行此测试时的输出:
C:\Users\rs02130\Desktop>test
C:\Users\rs02130\Desktop>set TESTVAR = "No Value"
C:\Users\rs02130\Desktop>ECHO var =
var =
C:\Users\rs02130\Desktop>set TESTVAR = ""
C:\Users\rs02130\Desktop>ECHO var =
var =
C:\Users\rs02130\Desktop>set TESTVAR = "New value"
C:\Users\rs02130\Desktop>ECHO var =
var =
C:\Users\rs02130\Desktop>
我希望第一个和第三个ECHO命令显示的值是 "No Value" 和 "New value"。这到底是怎么回事?
EnableDelayedExpansion
。 - mavrosxristoforos