【问题标题】:Bash calling cmd /c %ProgramFiles(x86)%\Bash 调用 cmd /c %ProgramFiles(x86)%\
【发布时间】:2012-10-25 14:49:20
【问题描述】:

通过 bash 脚本(来自 msysgit 的 bash),我想运行 MS VB 2010 Express 编译,但以下行均无效:

$ $PROGRAMFILES/Microsoft\ Visual\ Studio\ 10.0\\Common7\\ide\\vbexpress.exe path/to/solution.sln /build

sh.exe": C:\Program: No such file or directory 中的结果

$ "$PROGRAMFILES/Microsoft\ Visual\ Studio\ 10.0\\Common7\\ide\\vbexpress.exe" path/to/solution.sln /build

sh.exe": C:\Program Files (x86)/Microsoft\ Visual\ Studio\ 10.0\Common7\ide\vbexpress.exe: No such file or directory 中的结果

$ cmd /c "$PROGRAMFILES(X86)/Microsoft\ Visual\ Studio\ 10.0\\Common7\\ide\\vbexpress.exe" path/to/solution.sln /build

这将仅打开 cmd-shell,因为 cmd 似乎无法识别参数 /c 的参数

$ cmd "/c $PROGRAMFILES(X86)/Microsoft\ Visual\ Studio\ 10.0\\Common7\\ide\\vbexpress.exe" path/to/solution.sln /build

错误消息:找不到命令C:\Program"

$ /c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio\ 10.0/Common7/IDE/vbexpress.exe IOS\\IOS.sln /build

有点工作,但虽然它启动了 VB Express,但它抱怨无法加载 C:\Program Files (x86)/Git/build - 显然 shell 将 /build 扩展为路径。而且这个解决方案有缺陷,因为我想使用环境变量来区分 Windows 的 32 位和 64 位安装。

转义路径分隔符和空间以使其正常工作的正确方法是什么?

【问题讨论】:

    标签: bash msysgit cmd


    【解决方案1】:

    虽然我没有这个特定的软件,但我相信这样的东西可以工作:

    "$PROGRAMFILES/Microsoft Visual Studio/10.0/Common7/IDE/vbexpress.exe" 'IOS\IOS.sln' '//build'

    我尝试用它来调用其他一些软件,例如:

    "$PROGRAMFILES/Internet Explorer/iexplore" 'T:\public_html\index.html'

    【讨论】:

    • 如果这是唯一的问题,那么 /build 上的双斜杠应该可以工作。
    • 啊!完美的!这就是诀窍,感谢您指出这一点!
    • 我修改了答案以反映双斜线。
    猜你喜欢
    • 1970-01-01
    • 2015-02-03
    • 1970-01-01
    • 2012-06-24
    • 1970-01-01
    • 2011-02-14
    • 1970-01-01
    • 2013-07-15
    • 1970-01-01
    相关资源
    最近更新 更多