我需要在交互式命令提示符(不在批处理文件中)中转义 %
字符。如何回显文本 a %pathext% b
; %pathext%
扩展为环境变量; ^
、%
、\
和 "quotes"
均无效。答案请基于:echo a %pathext% b
。
提前非常感谢。
最佳答案
有一个简单的解决方案,但它不是 100% 防弹
echo a %path^ext% b
插入符的位置可以移动到任意位置。
这是可行的,因为命令行上的变量扩展与批处理文件中的变量扩展不同。
如果应扩展 undefined variable ,则在批处理文件中会生成空文本,但在 cli 上,百分比表达式将保持不变。
插入符号将在解析器的后续步骤中被删除。
但是当存在名为 path^ext
的变量时,它仍然可能失败
对于防弹解决方案,您需要创建一个百分号并将其展开。
for /F "delims==" %# in ("%=%=") do echo a %#pathext%# b
关于windows - 交互式命令提示符字符转义%,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71492528/