Wie man den Exit-Code von Start-Process in PowerShell erhält
-
Holen Sie sich den Rückgabecode vom
Start-Process
Befehl in PowerShell mit dem-Wait
Parameter -
Holen Sie sich den Rückgabecode vom
Start-Process
Befehl in PowerShell durch Überprüfung der$LastExitCode
Variablen -
Holen Sie sich den Rückgabecode vom
Start-Process
Befehl in PowerShell mit einem Prozessobjekt - Fazit

In PowerShell wird das Cmdlet Start-Process
verwendet, um neue Prozesse zu starten, aber das Abrufen des Rückgabecodes eines mit diesem Befehl gestarteten Prozesses ist nicht einfach. Der Rückgabecode repräsentiert den Status des Prozesses, nachdem er abgeschlossen wurde, und kann wertvoll für Skriptzwecke sein oder um zu bestimmen, ob der Prozess erfolgreich war.
In diesem Artikel werden wir Möglichkeiten erkunden, um den Rückgabecode von einem Prozess zu erhalten, der mit Start-Process
in PowerShell initiiert wurde.
Holen Sie sich den Rückgabecode vom Start-Process
Befehl in PowerShell mit dem -Wait
Parameter
Bevor wir eintauchen, wie man den Rückgabecode mit dem -Wait
Parameter abruft, lassen Sie uns kurz besprechen, was Rückcodes sind. Ein Rückgabe-Code ist ein numerischer Wert, den ein Prozess nach Abschluss zurückgibt.
Konventionell zeigt ein Rückgabecode von 0
eine erfolgreiche Ausführung an, während Nicht-Null-Rückgabecodes Fehler oder spezifische Bedingungen repräsentieren, die von der ausgeführten Anwendung oder dem Skript definiert sind.
Der -Wait
Parameter im Start-Process
Cmdlet weist PowerShell an, auf den Abschluss des gestarteten Prozesses zu warten, bevor das Skript fortgesetzt wird. Dies ist entscheidend für das Abrufen des Rückgabecodes des Prozesses.
Lassen Sie uns einen schrittweisen Ansatz erkunden, um dies zu erreichen:
-
Um einen Prozess zu starten und auf dessen Abschluss mit dem
-Wait
Parameter zu warten, verwenden Sie die folgende Syntax:Start-Process -FilePath "YourExecutable.exe" -ArgumentList "YourArguments" -NoNewWindow -Wait
Erschließen Sie
"YourExecutable.exe"
mit dem Pfad zur ausführbaren Datei oder dem Skript, das Sie ausführen möchten, und"YourArguments"
mit allen Argumenten, die der Prozess benötigt. -
Um den Prozess und seinen Rückgabecode zu erfassen, speichern Sie den
Start-Process
Befehl in einer Variablen:$process = Start-Process -FilePath "YourExecutable.exe" -ArgumentList "YourArguments" -NoNewWindow -Wait -PassThru
Der
-PassThru
Parameter ermöglicht es, das Prozessobjekt in der Variablen$process
zu speichern. -
Sobald der Prozess abgeschlossen ist, können Sie auf seinen Rückgabecode über die
ExitCode
-Eigenschaft des Prozessobjekts, das in der Variablen gespeichert ist, zugreifen:$exitCode = $process.ExitCode Write-Host "Exit code: $exitCode"
Das Cmdlet
Write-Host
wird verwendet, um den erhaltenen Rückgabecode in der Konsole anzuzeigen.
Durch den Einsatz des -Wait
Parameters und den Zugriff auf die ExitCode
-Eigenschaft können Sie erfolgreich den Rückgabecode eines Prozesses abrufen, der mit Start-Process
in PowerShell initiiert wurde.
Hier ist ein Beispielskript, das die oben genannten Schritte veranschaulicht:
# Start the process and wait for it to complete
$process = Start-Process -FilePath "notepad.exe" -NoNewWindow -Wait -PassThru
# Retrieve the exit code
$exitCode = $process.ExitCode
Write-Host "Exit code: $exitCode"
In diesem Beispiel starten wir die Notepad-Anwendung, warten auf deren Abschluss und erhalten dann den Rückgabecode und zeigen ihn an.
Holen Sie sich den Rückgabecode vom Start-Process
Befehl in PowerShell durch Überprüfung der $LastExitCode
Variablen
PowerShell speichert automatisch den Rückgabecode des zuletzt ausgeführten Prozesses in der $LastExitCode
Variablen. Diese Variable kann nach dem Start eines Prozesses mit Start-Process
zugegriffen werden.
Hier ist ein schrittweiser Ansatz zur Nutzung von $LastExitCode
:
-
Beginnen Sie damit, den gewünschten Prozess mit dem Cmdlet
Start-Process
zu starten. Hier ist eine generische Syntax:Start-Process -FilePath "YourExecutable.exe" -ArgumentList "YourArguments" -NoNewWindow
Erschließen Sie
"YourExecutable.exe"
mit dem Pfad zur ausführbaren Datei oder dem Skript, das Sie ausführen möchten, und"YourArguments"
mit allen Argumenten, die der Prozess benötigt. -
Nachdem der Prozess abgeschlossen ist, greifen Sie auf den Rückgabecode über die
$LastExitCode
Variable zu:$exitCode = $LastExitCode Write-Host "Exit code: $exitCode"
Das Cmdlet
Write-Host
wird verwendet, um den Rückgabecode in der Konsole anzuzeigen.
Durch die Nutzung der $LastExitCode
Variablen können Sie mühelos den Rückgabecode eines Prozesses abrufen, der mit Start-Process
in PowerShell initiiert wurde.
Nachfolgend finden Sie ein umfassendes Beispielskript, das die obigen Schritte veranschaulicht:
# Start the process
Start-Process -FilePath "notepad.exe" -NoNewWindow
# Access the exit code
$exitCode = $LastExitCode
Write-Host "Exit code: $exitCode"
In diesem Beispiel starten wir die Notepad-Anwendung und greifen dann auf den Rückgabecode zu und zeigen ihn mit $LastExitCode
an.
Holen Sie sich den Rückgabecode vom Start-Process
Befehl in PowerShell mit einem Prozessobjekt
Bei Verwendung des -PassThru
Parameters mit Start-Process
gibt das Cmdlet ein System.Diagnostics.Process
Objekt zurück, das den neu gestarteten Prozess darstellt. Sie können dann auf den Rückgabecode über die ExitCode
-Eigenschaft dieses Objekts zugreifen.
Hier ist ein schrittweiser Ansatz, um dies zu erreichen:
-
Starten Sie den gewünschten Prozess und erfassen Sie das Prozessobjekt mit dem
-PassThru
Parameter:$process = Start-Process -FilePath "YourExecutable.exe" -ArgumentList "YourArguments" -NoNewWindow -PassThru
Erschließen Sie
"YourExecutable.exe"
mit dem Pfad zur ausführbaren Datei oder dem Skript, das Sie ausführen möchten, und"YourArguments"
mit allen Argumenten, die der Prozess benötigt. -
Wenn nötig, warten Sie auf den Abschluss des Prozesses mit der
WaitForExit()
Methode:$process.WaitForExit()
Dieser Schritt stellt sicher, dass das Skript wartet, bis der Prozess abgeschlossen ist, bevor es fortfährt.
-
Sobald der Prozess abgeschlossen ist, greifen Sie auf seinen Rückgabecode über die
ExitCode
-Eigenschaft zu:$exitCode = $process.ExitCode Write-Host "Exit code: $exitCode"
Das Cmdlet
Write-Host
wird verwendet, um den Rückgabecode in der Konsole anzuzeigen.
Durch die Nutzung eines Prozessobjekts und den Zugriff auf die ExitCode
-Eigenschaft können Sie erfolgreich den Rückgabecode eines Prozesses abrufen, der mit Start-Process
in PowerShell initiiert wurde.
Hier ist ein umfassendes Beispielskript, das die oben genannten Schritte veranschaulicht:
# Start the process and obtain a process object
$process = Start-Process -FilePath "notepad.exe" -NoNewWindow -PassThru
# Wait for the process to complete
$process.WaitForExit()
# Access the exit code
$exitCode = $process.ExitCode
Write-Host "Exit code: $exitCode"
In diesem Beispiel starten wir die Notepad-Anwendung, warten auf deren Abschluss und erhalten dann den Rückgabecode und zeigen ihn mithilfe des Prozessobjekts an.
Fazit
Das Abrufen des Rückgabecodes von einem mit dem Cmdlet Start-Process
in PowerShell gestarteten Prozess kann durch die Verwendung des -Wait
Parameters, der $LastExitCode
Variablen oder durch den Zugriff auf die ExitCode
-Eigenschaft des System.Diagnostics.Process
Objekts erreicht werden.
Zu verstehen, wie man den Rückgabecode abruft, ermöglicht es Ihnen, programmgesteuert mit den Ergebnissen von Prozessen umzugehen und zu reagieren, wodurch die Automatisierung und Zuverlässigkeit Ihrer PowerShell-Skripte verbessert wird.
John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.
LinkedIn