PowerShell
Ausführbare Dateien ausführen
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.