我想要运行一个带有 start /high
命令的批处理文件,并且仍然能够获取返回/退出代码,即 %ERRORLEVEL%
。问题似乎是命令 START 没有返回批处理文件返回的退出代码。
我们有一个简单的测试批处理文件,名为 BatFileThatReturnsOne.bat
。
BatFileThatReturnsOne.bat
的内容如下:
EXIT /B 1
我们将其称为这样:
start /high /wait BatFileThatReturnsOne.bat
无论批处理文件返回什么,
start
命令的执行结果始终不会是除了0(零)以外的任何值 %ERRORLEVEL%
。
这实际上是由CloudFormation中的cfn-init调用的,但这可能与我们可以在命令行窗口中重新创建它无关。
实际调用命令为:
cmd.exe /C start /high /wait BatFileThatReturnsOne.bat
如何让start
命令将%ERRORLEVEL%
设置为非零值?