在批处理脚本中,我想调用另一个批处理脚本,如下所示:
call C:\Users\user name\test.cmd
call "C:\Users\user name\test.cmd"
第一个不起作用,因为文件路径中有一个空格,第二个不起作用,因为call
尝试用双引号执行整个字符串。
有没有不用就可以做到这一点的方法start
?
编辑,更多上下文:
:runAndAssertCmd
echo Running: %1
call %~1 || exit /b
goto:eof
call :runAndAssertCmd "C:\Users\user name\bower install"
这将导致错误,
'C:\Users\user' is not recognized as an internal or external command, operable program or batch file.
答案1
在您的子程序runAndAssertCmd
行中用 替换%~1
,就像%1
前者删除您希望保留的引号一样。