0

我创建了一个批处理(batA)文件,它启动了另一个批处理(marathon.bat)文件。当我将 batA 保存到我的桌面并使用

start /wait ..\marathon\marathon.bat -batch "C:\stuff"

它工作得很好。但是,当我将 marathon.bat 保存到我的程序文件中时,现在名称中有空格,然后使用

start /wait c:\"Program Files (x86)\marathon\marathon.bat" -batch "c:\stuff"

我得到错误:

'c:\Program' is not recognized as an internal or external command, operable program or batch file.

我知道您必须使用双引号,以便将空格考虑在内,但为什么它会停在 c:\Program?我尝试将引号移动到不同的位置,但我似乎无法让它识别第二个文件。

4

2 回答 2

0

这对你有用吗?

 start "" /wait %comspec% /c "c:\Program Files (x86)\marathon\marathon.bat" -batch "c:\stuff"
于 2014-01-30T15:02:25.077 回答
0

调用批处理文件的方式有 2 个问题。

首先,你把你的报价放在了错误的地方。代替

start /wait c:\"Program Files (x86)\marathon\marathon.bat" 

您应该用引号将整个命令括起来,而不仅仅是Program Files文件夹名称:

start /wait "c:\Program Files (x86)\marathon\marathon.bat" 

第二个问题是命令的第一个带引号的参数START被视为新窗口的标题。您应该在命令之前添加一组空引号以规避此问题:

start "" /wait "c:\Program Files (x86)\marathon\marathon.bat" 
于 2014-01-30T14:32:20.703 回答