Batch file 批处理文件未启动另一个批处理文件

Batch file 批处理文件未启动另一个批处理文件,batch-file,marathontesting,Batch File,Marathontesting,我创建了一个批处理(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" 我得到一个错

我创建了一个批处理(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?我尝试将引号移动到不同的位置,但我似乎无法让它识别第二个文件。

如何调用批处理文件有两个问题

首先,你把你的报价放错了地方。而不是

start /wait c:\"Program Files (x86)\marathon\marathon.bat" 
您应该用引号括起整个命令,而不仅仅是从
程序文件
文件夹名称:

start /wait "c:\Program Files (x86)\marathon\marathon.bat" 
第二个问题是,带有引号的第一个参数指定给
START
命令,该参数被视为新窗口的标题。您应该在命令之前添加一组空引号,以避免此问题:

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

这对你有用吗

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

应该
c:\“P..”
不是
“c:\P..”
?我已经试过了,但没用。不过我会再试一次。我把双引号放在那里,因为在批处理文件的前面,这是我启动vbscript的方式。”c:\“剩余文件路径”有效,而“c:\剩余文件路径”无效。另外,在start命令之后添加两组双引号对我来说没有任何区别。我还是会犯同样的错误。@NickL你试过带空引号的部分了吗?这解决了您的问题吗?当您说空引号时,我假定您的意思是在start命令(start“”)之后。是的,我试过了,但不起作用。我不知道你是指“”还是“”(第一个中间没有空格,第二个中间有空格)。我两个都试过了,但都不起作用。启动指令是否在某种循环中?您以前是否关闭了每个引号?当你说它不起作用时,口译员会说什么?(正在尝试空双引号解决方案)@MrPaulch无循环。这是一个非常简单的文件。它启动了一个vbscript,如果errorlevel==0,那么goto starttests就是我遇到这个问题的地方。我在尝试空双引号解决方案时收到相同的错误。