如何使用START命令启动批处理文件的返回/退出代码?

Tim*_*ett 3 windows cmd batch-file

我试图运行批处理文件,start /high仍然得到返回/退出代码,即%ERRORLEVEL%.问题似乎是命令START不返回批处理文件返回的退出代码.

我们有一个简单的批处理文件用于测试命名BatFileThatReturnsOne.bat.

内容BatFileThatReturnsOne.bat

EXIT /B 1
Run Code Online (Sandbox Code Playgroud)

我们这样称呼:

start /high /wait BatFileThatReturnsOne.bat
Run Code Online (Sandbox Code Playgroud)

但无论批处理文件返回什么,执行start永远不会有%ERRORLEVEL%0(零)以外的任何东西.

这实际上是由CloudFormation中的cfn-init调用的,但这可能不相关,因为我们可以从命令行窗口重现它.

实际的电话是:

cmd.exe /C start /high /wait BatFileThatReturnsOne.bat
Run Code Online (Sandbox Code Playgroud)

如何将start其设置为%ERRORLEVEL%0(零)以外的其他值?

MC *_* ND 6

直接从cmd您可以使用的窗口或批处理文件

start /high /wait cmd /c BatFileThatReturnsOne.bat
Run Code Online (Sandbox Code Playgroud)

但是如果您需要启动cmd实例来执行启动批处理文件的启动命令,那么您可以使用

cmd /v /e /c" start /high /wait cmd /c launched.cmd & exit ^!errorlevel^!"
Run Code Online (Sandbox Code Playgroud)