Wait-Process
Wartet, bis die Prozesse beendet werden, bevor weitere Eingaben akzeptiert werden.
Syntax
Wait-Process
[-Name] <String[]>
[[-Timeout] <Int32>]
[<CommonParameters>]
Wait-Process
[-Id] <Int32[]>
[[-Timeout] <Int32>]
[<CommonParameters>]
Wait-Process
[[-Timeout] <Int32>]
-InputObject <Process[]>
[<CommonParameters>]
Beschreibung
Das -Cmdlet "Wait-Process" wartet, bis ein oder mehrere ausgeführte Prozesse beendet werden, bevor die Eingabe akzeptiert wird. In der Windows PowerShell-Konsole unterdrückt dieses Cmdlet die Eingabeaufforderung, bis die Prozesse beendet werden. Sie können einen Prozess nach Prozessname oder Prozess-ID (PID) angeben oder ein Prozessobjekt an Wait-Process-senden.
Wait-Process- funktioniert nur bei Prozessen, die auf dem lokalen Computer ausgeführt werden.
Beispiele
Beispiel 1: Beenden eines Prozesses und Warten
PS C:\> $nid = (Get-Process notepad).id
PS C:\> Stop-Process -Id $nid
PS C:\> Wait-Process -Id $nid
In diesem Beispiel wird der Editor-Prozess beendet und wartet dann, bis der Prozess beendet wird, bevor er mit dem nächsten Befehl fortgesetzt wird.
Der erste Befehl verwendet das Cmdlet Get-Process, um die ID des Editorprozesses abzurufen. Sie speichert die ID in der variablen $nid.
Der zweite Befehl verwendet das Cmdlet Stop-Process, um den Prozess mit der in $nid gespeicherten ID zu beenden.
Der dritte Befehl verwendet Wait-Process-, um zu warten, bis der Editor-Prozess beendet wird. Sie verwendet den Id Parameter von Wait-Process, um den Prozess zu identifizieren.
Beispiel 2: Angeben eines Prozesses
PS C:\> $p = Get-Process notepad
PS C:\> Wait-Process -Id $p.id
PS C:\> Wait-Process -Name "notepad"
PS C:\> Wait-Process -InputObject $p
Diese Befehle zeigen drei verschiedene Methoden zum Angeben eines Prozesses zum Wait-Process-. Der erste Befehl ruft den Editorprozess ab und speichert ihn in der variablen $p.
Der zweite Befehl verwendet den Parameter Id, der dritte Befehl verwendet den Parameter Name, und der vierte Befehl verwendet den parameter InputObject.
Diese Befehle haben dieselben Ergebnisse und können austauschbar verwendet werden.
Beispiel 3: Warten auf Prozesse für eine bestimmte Zeit
PS C:\> Wait-Process -Name outlook, winword -Timeout 30
Dieser Befehl wartet 30 Sekunden, bis die Outlook- und Winword-Prozesse beendet werden. Wenn beide Prozesse nicht beendet werden, zeigt das Cmdlet einen nicht beendeten Fehler und die Eingabeaufforderung an.
Parameter
-Id
Gibt die Prozess-IDs der Prozesse an.
Um mehrere IDs anzugeben, verwenden Sie Kommas, um die IDs zu trennen.
Geben Sie Get-Process
ein, um die PID eines Prozesses zu finden.
Typ: | Int32[] |
Aliase: | PID, ProcessId |
Position: | 0 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-InputObject
Gibt die Prozesse durch Senden von Prozessobjekten an. Geben Sie eine Variable ein, die die Prozessobjekte enthält, oder geben Sie einen Befehl oder Ausdruck ein, der die Prozessobjekte abruft, z. B. das Cmdlet Get-Process.
Typ: | Process[] |
Position: | Named |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-Name
Gibt die Prozessnamen der Prozesse an. Um mehrere Namen anzugeben, verwenden Sie Kommas, um die Namen zu trennen. Wildcardzeichen werden nicht unterstützt.
Typ: | String[] |
Aliase: | ProcessName |
Position: | 0 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-Timeout
Gibt die maximale Zeit in Sekunden an, die dieses Cmdlet auf das Beenden der angegebenen Prozesse wartet. Wenn dieses Intervall abläuft, zeigt der Befehl einen nicht beendeten Fehler an, der die noch ausgeführten Prozesse auflistet und die Wartezeit beendet. Standardmäßig ist kein Timeout vorhanden.
Typ: | Int32 |
Aliase: | TimeoutSec |
Position: | 1 |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
Eingaben
Sie können ein Prozessobjekt an dieses Cmdlet weiterleiten.
Ausgaben
None
Dieses Cmdlet generiert keine Ausgabe.
Hinweise
Dieses Cmdlet verwendet die WaitForExit Methode der System.Diagnostics.Process-Klasse. Weitere Informationen zu dieser Methode finden Sie im Microsoft .NET Framework SDK.