无法在Windows的命令shell中转义空间

时间:2011-11-24 17:53:13

标签: windows command-line escaping command command-line-arguments

如果我执行

cmd /c "%programfiles%\mycode\md5sums.exe" %temp%

它运作得很好。但是当我执行

cmd /c "%programfiles%\mycode\md5sums.exe" %programfiles%

我得到以下错误 -

Error: Unable to read file/directory C:\Program

这意味着md5sums.exe正在尝试打开C:\Program而不是%programfiles%

给出的完整路径

我要使用cmd /c,因为我要远程运行此命令。

如何让它发挥作用? 我尝试使用`“%programfiles%”但在这种情况下甚至没有执行md5sums.exe。

最终我想使用md5sums.exe提供的开关“/ b”但是在这个时候我甚至坚持让md5sums运行在%programfiles%

2 个答案:

答案 0 :(得分:4)

尝试:

cmd /c "%programfiles%\mycode\md5sums.exe" "%programfiles%"
                                           ^--------------^--quotes added

否则,您最终得到的结果如下:

cmd /c "C:\Program Files\mycode\md5sums.exe" C:\Program Files

并最终将两个参数传递给md5sums,而不是单个路径。

答案 1 :(得分:0)

在开始和结束时你需要一个双重双引号 e.g:

cmd /c ""%programfiles%\mycode\md5sums.exe" "%programfiles%""