如何使 Powershell 的行为与带有标志的 Bash 一样set -e
?set -o errexit
制作一个 Bash 脚本“如果一个简单的命令以非零状态退出,则立即退出”。
我以为我可以通过设置来做到这一点,$ErrorActionPreference="Stop"
但这似乎不起作用。假设我有一个脚本a.ps1
$ErrorActionPreference="Stop"
& cmd /c "exit 1"
echo "cmd exited `$LastExitCode=$LastExitCode and `$?=$?"
如果我运行它
.\a. ; echo "a.ps1 exited `$LastExitCode=$LastExitCode `$?=$?"
令我惊讶的是它打印
cmd exited $LastExitCode=1 and $?=False
a.ps1 exited $LastExitCode=1 $?=True
这是怎么回事?!我希望 a.ps1 在第一行之后退出,抛出错误并设置 $? 为假。
有没有解释 $ErrorActionPreference 的官方文档?我发现的只是关于咖啡的博客上的这篇文章。