如何回显环境变量在DOS批处理中包含'&'?

Cel*_*ebi 4 dos batch-file echo

当我输入:

set hi=Hello^&World!
echo %hi%
Run Code Online (Sandbox Code Playgroud)

打印Hello并告诉我World不是命令

我想要它打印Hello&World!

这该怎么做?

Bal*_*i C 19

这对我有用:

set "hi=Hello^&World!"
echo %hi%
Run Code Online (Sandbox Code Playgroud)

输出

Hello&World!
Run Code Online (Sandbox Code Playgroud)


jeb*_*jeb 5

回显变量内容的唯一安全方法是使用此处的延迟扩展。
如果使用百分比扩展,失败的话要看内容。

set "var1=Hello ^& World"
set "var2=Hello & World"
setlocal EnableDelayedExpansion
echo !var1!
echo !var2!
echo %var1%
echo %var2% -- fails
Run Code Online (Sandbox Code Playgroud)

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