我有一个像这样的脚本:
test.ps1
-
Write-Host "Hello there!"
if ($foobar) {
Write-Host "Oh, noes!"
exit 1
}
# do stuff ...
# end of script
(从powershell中)调用此命令时,会在错误情况下将$global:LASTEXITCODE
设置为1
,但脚本成功后,它会不设置{{1 }},该值不变。
因此,我的解决方法是:
$global:LASTEXITCODE
然后我可以检查另一个powershell脚本的脚本返回代码,或者是否从....
# end of script
exit 0
调用它,我也可以检查cmd.exe
。
所以这对我来说似乎有点矛盾:从Powershell ps1脚本“退出”(从另一个Powershell脚本或批处理文件调用)的“正确”方法是什么?这样您可以获得一致的结果?
骗子是正确的:Ansgar provides a good answer there.那里的问题与语法问题混杂在一起,以至于我发现这个骗子还是有帮助的。
还应该读Serge van den Oever的Returning an exit code from a PowerShell script:尽管是从2010年开始的,但似乎确实很好地突出了这些问题。