繁体   English   中英

交互式命令提示字符 escaping %

[英]Interactive Command Prompt character escaping %

我需要在交互式命令提示符中转义%字符(不在批处理文件中)。 如何回显文本a %pathext% b %pathext%扩展为环境变量; ^%\"quotes"都不起作用。 请基于以下答案: echo a %pathext% b

提前谢谢了。

有一个简单的解决方案,但它不是 100% 防弹的

echo a %path^ext% b

插入符号的 position 可以移动到任何 position。这是有效的,因为命令行上的变量扩展与批处理文件中的工作方式不同。
如果应扩展未定义的变量,则在批处理文件中它会生成一个空文本,但在 cli 上将不加更改地使用百分比表达式。 插入符将在解析器的后续步骤中删除。

但是当存在名为path^ext的变量时它仍然会失败

对于防弹解决方案,您需要创建一个百分号并将其展开。

for /F "delims==" %# in ("%=%=") do echo a %#pathext%# b
echo a %^pathext% b

在变量内使用插入符号(它可以在%符号内的任何位置)以防止解析器识别和替换变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM