我试图从我的bash脚本中运行以下命令。 (通过msysgit安装bash)
taskkill /IM ssh-agent.exe
我在taskkill
屏幕上显示的输出是:
ERROR: Invalid argument/option - 'C:/Program Files/Git/IM'.
Type "TASKKILL /?" for usage.
可执行文件正在运行,但/IM
正在扩展,无论我尝试做什么都要逃避它......
我已尝试使用\/IM
但是它发送\/IM
而没有逃避斜线,我尝试了几种不同的方式来运行它通过eval,cmd / c start,等...但他们似乎都有问题。我也试过了set -o noglob
,这也没有用。既没有$'\057/'IM
也没有类似的尝试......
答案 0 :(得分:26)
由于我的评论实际上提供了答案,我会发布。
如何将正斜杠转义为//
之类的另一个正斜杠。当我执行此命令并转义/r
参数时,它对我有用:
start C:/folder/beep 2000 250 100 //r 3
来源:http://oldwiki.mingw.org/index.php/switches%20with%20forward%20slashes
Windows的极简GNU
在MSYS下使用正斜杠传递开关
在MSYS中,命令行参数“/ c”被解释为C: 驱动,所以传递任何以你需要的正斜杠开头的参数 使用两个正斜杠。例如,要在MSYS中使用此命令:
cmd /c echo foo
使用:
cmd //c echo foo
如果你需要在shell脚本中使用windows风格的路径,那么你 可以做到
x=$(cd /unix/path && cmd //c cd)
x var现在包含与/ unix / path
的窗口等效路径
答案 1 :(得分:4)
经过几个小时的寻找各种搜索,例如“禁用bash文件扩展”等,我通过专门搜索我试图运行的"bash" "windows" taskkill
可执行文件找到了它,我遇到了this answer,这最终对我有用。
cmd " /c taskkill /F /IM ssh-agent.exe"