%ERRORLEVEL%不起作用,包含单行上的多个命令

sur*_*h d 1 windows command-line command batch-file command-prompt

我正在尝试下面的命令,并希望退出我的process(%ERRORLEVEL%).但它返回previous(last)执行的退出代码结果sample.exe.我想获得当前命令的退出代码.我的要求是在单行*(不是批处理脚本)*中执行多个命令.

命令:

cmd /c sample.bat "test" > c:\ouput.log & echo %ERRORLEVEL% > c:\returnCode.log
Run Code Online (Sandbox Code Playgroud)

我甚至尝试过使用"setlocal enableDelayedExpansion",如下所示.仍然没有返回当前命令的退出代码

cmd /c setlocal enableDelayedExpansion & sample.bat "test" > c:\ouput.log & echo %ERRORLEVEL% > c:\returnCode.log
Run Code Online (Sandbox Code Playgroud)

请告诉我获取当前命令退出代码的方法.

Aac*_*ini 6

这应该工作:

cmd /V:ON /c sample.exe "test" > c:\ouput.log ^& echo !ERRORLEVEL! > c:\returnCode.log
Run Code Online (Sandbox Code Playgroud)

/ V:ON开关具有相同的效果setlocal EnableDelayedExpansion.有关详细信息,请键入:cmd /?

编辑:修复了小错误,&必须转义字符^,否则,echo !ERRORLEVEL!命令不会在cmd/V中执行:ON !!!