Suche…


Konsolenanwendungen

PS> console_app.exe
PS> & console_app.exe
PS> Start-Process console_app.exe

GUI-Anwendungen

PS> gui_app.exe (1)
PS> & gui_app.exe (2)
PS> & gui_app.exe | Out-Null (3)
PS> Start-Process gui_app.exe (4)
PS> Start-Process gui_app.exe -Wait (5)

GUI-Anwendungen werden in einem anderen Prozess gestartet und geben die Kontrolle sofort an den PowerShell-Host zurück. Manchmal muss die Anwendung die Verarbeitung abschließen, bevor die nächste PowerShell-Anweisung ausgeführt werden muss. Dies kann durch Weiterleiten der Anwendungsausgabe an $ null (3) oder durch Verwendung von Start-Process mit dem Schalter -Wait (5) erreicht werden.

Konsolenströme

PS> $ErrorActionPreference = "Continue" (1)
PS> & console_app.exe *>&1 | % { $_ } (2)
PS> & console_app.exe *>&1 | ? { $_ -is [System.Management.Automation.ErrorRecord] } (3)
PS> & console_app.exe *>&1 | ? { $_ -is [System.Management.Automation.WarningRecord] } (4)
PS> & console_app.exe *>&1 | ? { $_ -is [System.Management.Automation.VerboseRecord] } (5)
PS> & console_app.exe *>&1 (6)
PS> & console_app.exe 2>&1 (7)

Stream 2 enthält System.Management.Automation.ErrorRecord-Objekte. Beachten Sie, dass einige Anwendungen wie "git.exe" den "Fehlerstrom" zu Informationszwecken verwenden, die nicht unbedingt Fehler sind. In diesem Fall sollten Sie den Exit-Code am besten prüfen, ob der Fehlerstrom als Fehler interpretiert werden soll.

PowerShell versteht diese Streams: Ausgabe, Fehler, Warnung, Verbose, Debug, Fortschritt. Native Anwendungen verwenden im Allgemeinen nur diese Streams: Ausgabe, Fehler, Warnung.

In PowerShell 5 können alle Streams auf den Standard-Output / Success-Stream umgeleitet werden (6).

In früheren PowerShell-Versionen können nur bestimmte Streams auf den Standard-Output / Success-Stream umgeleitet werden (7). In diesem Beispiel wird der "Fehlerstrom" in den Ausgabestrom umgeleitet.

Beendigungscodes

PS> $LastExitCode
PS> $?
PS> $Error[0]

Hierbei handelt es sich um integrierte PowerShell-Variablen, die zusätzliche Informationen zum neuesten Fehler enthalten. $LastExitCode ist der endgültige Exit-Code der zuletzt ausgeführten $LastExitCode Anwendung. $? und $Error[0] ist der letzte von PowerShell erzeugte Fehlerdatensatz.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow