I durch eine Powershell-Anwendung mit Exit-Code kann:Powershell Benutzerdefinierte Exit-Code Beschreibung
exit 59
Wie kann mit einer benutzerdefinierten Exit-Code Beschreibung verlassen?
exit 59, "Somethings Wrong"
I durch eine Powershell-Anwendung mit Exit-Code kann:Powershell Benutzerdefinierte Exit-Code Beschreibung
exit 59
Wie kann mit einer benutzerdefinierten Exit-Code Beschreibung verlassen?
exit 59, "Somethings Wrong"
Sie können nicht. In der PowerShell-Umgebung können Cmdlets ein beliebiges .NET-Objekt (Strings, Exceptions usw.) zueinander zurückgeben. Wenn Sie jedoch beenden, wird der PowerShell-Prozess beendet und es kann an Windows zurückgegeben werden/der aufrufende Prozess ist eine Ganzzahl.
https://en.wikipedia.org/wiki/Exit_status#Windows
Es gibt nirgendwo eine eigene Beschreibung und keine Möglichkeit für etwas anderes zu setzen, um eine Beschreibung zu erhalten. Das sind Jahre der Legacy-Computing- und Rückwärtskompatibilitätseinschränkungen, bis die Prozessoren klein waren, der Speicher teuer war und die Rückgabewerte (ich spekuliere) ein Prozessorregisterwert oder ähnliches waren.
Wenn Sie in einer Eingabeaufforderung und diese Befehle ausführen:
c:\> powershell
Windows PowerShell
Copyright (C) 2014 Microsoft Corporation. All rights reserved.
PS C:\> exit 10
c:\> echo %ERRORLEVEL%
10
Sie sehen der Powershell-Prozess mit dem Rückgabewert von 10 verließ Aber es gibt kein %ERRORDESCRIPTION%
oder ähnliches Standard-Feature, etwas anderes zu setzen. Es gibt einfach keine Maschinen der unteren Ebene für das, was Sie tun wollen.
Was Sie tun können, ist auf die Standardfehlerausgabe (stderr) schreiben mit Write-Error und wenn ein Programm Ihr Skript aufruft und stderr Ausgabe erfasst, kann es lesen. Oder Sie können einen Fehler in ein Ereignisprotokoll oder in eine Protokolldatei schreiben.
Aber jedes Schreiben muss geschehen, während Ihr Prozess läuft, weil Sie nichts tun können, nachdem Ihr Prozess beendet wurde.
Abhängig von Ihrer Fehlereinstellung beendet write-error die Ausführung des Skripts nicht. 'throw' sollte auch hier erwähnt werden, denke ich. 'Write-Error" This ";" Hallo "' vs. 'throw" This ";" Hallo "' – Matt
Warum nicht 'Write-Host' verwenden, gefolgt von einem Exit-Code? Die Art und Weise, wie der Code oben eingegeben wurde, ist nicht korrekt, auf "exit" folgt ein numerischer Code, um den Exit-Code anzuzeigen. – t0mm13b
Das mache ich gerade. Ich hatte gehofft, dass es weg war, um die Exit-Code-Beschreibung beim Beenden zu senden, anstatt vor dem Exit. – ArcSet
Es gibt keine "benutzerdefinierte Exit-Code-Beschreibung". Ein Exit-Code ist eine Ganzzahl. –