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

发布于 2024-12-05 16:17:01 字数 156 浏览 1 评论 0原文

当我输入:

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

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

我希望它打印 Hello&World!

如何做到这一点?

When I type:

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

it print Hello and tell me World is not a command

I want it prints Hello&World!

How to do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

卖梦商人 2024-12-12 16:17:01

这对我有用:

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

输出

Hello&World!

This works for me:

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

Outputs

Hello&World!
你曾走过我的故事 2024-12-12 16:17:01

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

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

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

The only secure way to echo the content of a variable is to use the delayed expansion here.
If percent expansion is used, it depends on the content if it fails.

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

The delayed expansion is more usefull as it doesn't interpret any special characters.
More info at SO: How the parser works

于我来说 2024-12-12 16:17:01

正常

echo Hello ^& World!

工作

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

just

echo Hello ^& World!

works

EDIT
so the problem is not with ECHO command, but with the assignment of the variable, as @Bali correctly pointed out.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文