在 powershell 中运行此代码会产生奇怪的结果:
PS> .\test.bat; $lastexitcode
>exit /b 0
2
PS> cmd /c exit /b 0; $lastexitcode
0
有人可以解释如何更正批处理文件版本吗?我还想指出,除了0
正常工作之外的退出值。
在 powershell 中运行此代码会产生奇怪的结果:
PS> .\test.bat; $lastexitcode
>exit /b 0
2
PS> cmd /c exit /b 0; $lastexitcode
0
有人可以解释如何更正批处理文件版本吗?我还想指出,除了0
正常工作之外的退出值。
我能够exit /b <code>
在 PSv2 中重现使用,它似乎在 PSv3 中按预期工作。对于 PSv2,当我删除 which mean 时,它按预期开始/b
工作When used in a batch script, this option will exit only the script (or subroutine) but not CMD.EXE
。
围绕 PowerShell 错误地处理退出代码报告了许多问题: https ://connect.microsoft.com/PowerShell/SearchResults.aspx?SearchQuery=exit%2520code
我没有特别看到这一点,但这并不是说它在 PSv3 中没有修复。
所有这些解决方案都有效。如果有人可以解释,我将不胜感激:
PS> & cmd.exe /c 'test.bat && exit'; $lastexitcode
>exit /b 0
0
PS> cmd.exe /c 'test.bat && exit'; $lastexitcode
>exit /b 0
0