Windows 命令行转义字符

Windows 命令行转义字符

长话短说:我们从脚本收到一个命令并想使用 Windows Shell 执行它。

目前我们使用的方法类似于:

echo start & command & echo finish

除非命令本身包含“&”符号,否则这种方法很有效,例如

echo begin & if exist c:\temp.txt echo 1 & echo end如果文件不存在,将无法写入“end”。

这可以通过将命令更改为 来解决echo begin & (if exist c:\temp.txt echo 1) & echo end,但是对于包含括号符号的命令,我们会遇到问题,例如

echo begin & (echo %PATH%) & echo end打印“\Hewlett-Packard\HP 此时是意外的。”因为我在路径中有 Program Files (x86)。

有什么方法可以从命令结果中转义特殊字符吗?

提前致谢

答案1

问题在于 PATH 中的空格,因此使用引号。

  echo begin & (echo "%PATH%") & echo end

相关内容