我正在尝试在我的批处理文件中声明并使用变量 . 它看起来应该很简单 .
@ECHO OFF SET location = "bob" ECHO We're working with "%location%"
我得到的输出是:
We're working with ""
这里发生了什么?为什么我的变量没有被回应?
= 之前的空格被解释为名称的一部分,其后面的空格(以及引号)被解释为值的一部分 . 因此,您创建的变量可以使用 %location % 引用 . 如果这不是您想要的,请删除定义中的额外空格 .
=
%location %
空间很重要 . 您创建了一个名为(包含添加的单引号以显示空间位置)的变量 'location ' ,其值为 ' "bob"' .
'location '
' "bob"'
如果你想要 Value 的报价,那么你的代码应该是这样的
set location="bob"
如果您不想要引号,那么您的代码应如下所示
set location=bob
或者更好
set "location=bob"
最后一种语法可以防止无意中的空格进入值,还可以防止像&|这样的特殊字符等等
输入 location.bat
location.bat
@echo off cls set /p "location"="bob" echo We're working with %location% pause
产量
We're working with bob
(你做错了: space 和 " " )
space
" "
3 回答
=
之前的空格被解释为名称的一部分,其后面的空格(以及引号)被解释为值的一部分 . 因此,您创建的变量可以使用%location %
引用 . 如果这不是您想要的,请删除定义中的额外空格 .空间很重要 . 您创建了一个名为(包含添加的单引号以显示空间位置)的变量
'location '
,其值为' "bob"'
.如果你想要 Value 的报价,那么你的代码应该是这样的
如果您不想要引号,那么您的代码应如下所示
或者更好
最后一种语法可以防止无意中的空格进入值,还可以防止像&|这样的特殊字符等等
输入
location.bat
产量
(你做错了:
space
和" "
)