如何在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