批处理文件集变量不起作用

时间:2013-10-18 11:24:32

标签: variables batch-file set

我正在对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命令显示“无值”和“新值”值。到底是怎么回事?

1 个答案:

答案 0 :(得分:39)

问题是等号周围的空格。这应该做你想要的。

set TESTVAR="No Value"
ECHO var = %TESTVAR%
set TESTVAR=""
ECHO var = %TESTVAR%
set TESTVAR="New value"
ECHO var = %TESTVAR%