如何在DOS批处理中输出包含'&'符号的环境变量?

6

当我输入:

set hi=Hello^&World!
echo %hi%

这段代码会打印出“Hello”并告诉我“World is not a command”。

我希望它能够打印出“Hello&World!”。

如何实现呢?

3个回答

22

这个对我有用:

set "hi=Hello^&World!"
echo %hi%

输出

Hello&World!

5

在这里,唯一安全的输出变量内容的方法是使用延迟扩展。
如果使用百分号扩展,它取决于内容是否失败。

set "var1=Hello ^& World"
set "var2=Hello & World"
setlocal EnableDelayedExpansion
echo !var1!
echo !var2!
echo %var1%
echo %var2% -- fails

延迟扩展更加有用,因为它不解释任何特殊字符。
更多信息请参见SO:解析器的工作原理

3

just

echo Hello ^& World!

工作

编辑 所以问题不在于ECHO命令,而在于变量的赋值,正如@Bali正确指出的那样。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接