2

在 powershell 中运行此代码会产生奇怪的结果:

PS> .\test.bat; $lastexitcode
>exit /b 0
2

PS> cmd /c exit /b 0; $lastexitcode
0

有人可以解释如何更正批处理文件版本吗?我还想指出,除了0正常工作之外的退出值。

4

2 回答 2

1

我能够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 中没有修复。

于 2013-04-25T02:03:37.497 回答
0

所有这些解决方案都有效。如果有人可以解释,我将不胜感激:

PS> & cmd.exe /c 'test.bat && exit'; $lastexitcode
>exit /b 0
0

PS> cmd.exe /c 'test.bat && exit'; $lastexitcode
>exit /b 0
0
于 2013-04-25T01:52:39.957 回答