コマンドプロンプトで、これを試してください。
PowerShell aaa
エコーErrorLevelは%errorlevel%です
Powershellは失敗します(エラーが発生します)。「 ErrorLevelis1」も表示されます。これは、aaaをスクリプトとして実行し、未処理のエラーを発生させてエラーレベルを設定するためです。
ただし、これを試してください。
パワーシェル '
エコーErrorLevelは%errorlevel%です
Powershellは失敗します(エラーが発生します)。今回は、「ErrorLevelis0」も表示されます。
それは別の問題だと思います。PowershellはそれがParserErrorだとさえ言うでしょう、そしてそれは私がコマンドライン引数を台無しにしたからです。それでも、それはクールではありません。
なぜこのように動作するのかわかりません。これは見落としだったと思います。他のプログラムは、失敗時にエラーレベルを設定することを怠っていますが、この場合は、途中まで進んだかのようです。ここでは、まったく設定しないのではなく、0に設定することもできます。