if变量 - 在Windows批处理文件(.BAT)中声明和使用变量




set bat (2)

我试图在我的批处理文件中声明并使用一个变量。 它看起来应该很简单。

@ECHO OFF

SET location = "bob"
ECHO We're working with "%location%"

我得到的输出是:

We're working with ""

这里发生了什么? 为什么我的变量不被echo'd?


=之前的空格被解释为名称的一部分,并且后面的空格(以及引号)被解释为值的一部分。 所以你创建的变量可以用%location %来引用。 如果这不是您想要的,请删除定义中的额外空间。


空间很重要。 您创建了一个名为(包含单引号添加以显示空间'location ' )的变量'location ' ,其值为' "bob"'

如果你想在你的价值中引用,那么你的代码应该看起来像

set location="bob"

如果你不需要引号,那么你的代码应该看起来像

set location=bob

或者更好

set "location=bob"

最后的语法可以防止无意中的空格进入该值,并且还可以防止出现像&|这样的特殊字符 等等







cmd