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が最初の行の後に終了し、エラーをスローして$を設定することを期待していましたか?Falseに。
$ ErrorActionPreferenceを説明する公式ドキュメントはありますか?私が見つけたのは、コーヒーに関するブログのこの投稿だけでした。