我正在尝试在批处理文件中定义和使用变量。看起来应该很简单:
@echo off
set location = "bob"
echo We're working with "%location%"
我得到的输出如下:
We're working with ""
这里发生了什么?为什么我的变量没有被回显?
我正在尝试在批处理文件中定义和使用变量。看起来应该很简单:
@echo off
set location = "bob"
echo We're working with "%location%"
我得到的输出如下:
We're working with ""
这里发生了什么?为什么我的变量没有被回显?
Answers:
空间很大。您创建了一个名为变量'location '
具有的价值
' "bob"'
。注意-添加了单引号以显示空间位置。
如果要在值中加上引号,则代码应如下所示
set location="bob"
如果您不想使用引号,那么您的代码应如下所示
set location=bob
还是更好
set "location=bob"
最后一种语法可以防止无意的尾随空格进入值,还可以防止诸如&
|
等的特殊字符。
%
,并且可能!
启用了延迟扩展。但是,如果此值不包含引号,则必须发愁的时候逃跑毒药字符,如|
,&
等
输入 location.bat
@echo off
cls
set /p "location"="bob"
echo We're working with %location%
pause
输出
We're working with bob
(您做错了:space
和" "
)
set /p
提示用户并将答案存储在指定的变量中。例如set /p name="What is your name? " & echo Hello, %name%.
set /p "varname"="text"
错误,它将创建一个名为的变量location"
(带引号!)。应该是set /p location="bob"
。但即使如此,它也不再符合这个问题了
=
被解释为名称的一部分,那么该变量不能被引用为%location%
,则必须被引用为%location %
。那是错字吗?