Probieren Sie dies in einer Eingabeaufforderung aus:
powershell aaa
echo ErrorLevel ist %errorlevel%
Powershell wird scheitern (mit einem Fehler). Sie sehen auch " ErrorLevel ist 1 ". Der Grund dafür ist, dass es läuft aaa als Skript, das einen unbehandelten Fehler erzeugt, der den Errorlevel setzt.
Aber jetzt probieren Sie Folgendes:
powershell '
echo ErrorLevel ist %errorlevel%
Powershell wird scheitern (mit einem Fehler). Dieses Mal werden Sie auch sehen " ErrorLevel ist 0 " .
Mir ist klar, dass das ein anderes Problem ist. Powershell sagt sogar, es sei ein ParserFehler und das liegt daran, dass ich die Befehlszeilenargumente falsch eingegeben habe. Trotzdem, das ist nicht cool .
Mir ist nicht klar, warum es sich so verhält. Ich vermute, dass dies ein Versehen war. Andere Programme vernachlässigen die Einstellung des Errorlevels bei Fehlschlägen, aber in diesem Fall ist es so, als ob sie auf halbem Wege stehen geblieben wären. Es ist sogar Einstellung auf 0 Hier ist es besser, sie gar nicht einzustellen.