windows - 交互式命令提示符字符转义%

标签 windows cmd escaping

我需要在交互式命令提示符(不在批处理文件中)中转义 % 字符。如何回显文本 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/

相关文章:

windows - 使用 rsync 从 Windows 传输到 Linux

Windows 应用程序与适用于移动应用程序的 Azure 应用程序服务

.net - F# 环境集成(用于脚本)

scripting - 如何测试无需实际创建ec2实例的脚本?

javascript - 意外的标记 ?在 JSON 中使用 JSON.parse 的 x 位置

c++ - MSVC Address Sanitizer - 有什么理由在发布版本中使用它吗?

batch-file - 如何在命令行上将文件名和扩展名分隔成变量

escaping - 为什么 CMake 在执行命令时在空格前加上反斜杠?

escaping - 使用 MSDOS 'echo' 命令将文本附加到文件时转义特殊字符的规则?

c++ - Zeromq:使用 Linux [REP] 和 Windows [REQ] 连接,没有消息到达