Unterschied zwischen $? und $ LastExitCode in PowerShell
In PowerShell, was ist der Unterschied zwischen $?
und $LastExitCode
?
Lese ich über automatische Variablenund es sagte:
$? Contains the execution status of the last operation. It contains TRUE if the last operation succeeded and FALSE if it failed.
$LastExitCode Contains the exit code of the last Windows-based program that was run.
In der definition von $?
es nicht erklären, was Erfolg und scheitern bedeuten.
Ich Frage, weil ich vermutete, dass $?
ist Wahr, wenn und nur wenn $LastExitCode 0 ist, aber ich fand ein überraschendes Gegenbeispiel: $LastExitCode=0 aber $?=False in der PowerShell. Umleiten von stderr zu stdout gibt NativeCommandError.
InformationsquelleAutor der Frage Colonel Panic | 2012-05-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
$LastExitCode
ist der return-code von nativen Anwendungen.$?
nur zurückTrue
oderFalse
je nachdem, ob der Letzte Befehl (cmdlet oder native) beendet wurde, ohne Fehler oder nicht.Für cmdlets Fehler bedeutet in der Regel eine Ausnahme, für native Anwendungen es ist ein non-zero exit code:
Abbrechen eines cmdlet mit Strg+C wird, zählen ebenfalls als Fehler; für native Anwendungen, es hängt davon ab, welche exit-code, die Sie gesetzt.
InformationsquelleAutor der Antwort Joey