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

问题描述:

当我键入:如何在DOS批处理中回显环境变量是否包含'&'?

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

其打印你好,告诉我世界上没有一个命令

我希望它打印Hello &世界!

如何做到这一点?

这个工作对我来说:

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

输出

Hello&World! 

只是

echo Hello ^& World! 

工作

编辑 所以这个问题不是用ECHO命令,而是用变量赋值,就像@Bali正确指出的那样。

回应变量内容的唯一安全方法是在此处使用延迟扩展。
如果使用百分比展开,则取决于内容是否失败。

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

延迟扩展更有用,因为它不解释任何特殊字符。
更多资讯SO: How the parser works