Wait-Process
Wartet, bis die Prozesse beendet wurden, bevor weitere Eingaben angenommen 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 Wait-Process
Cmdlet wartet auf das Beenden eines oder mehrerer ausgeführter Prozesse, bevor die Eingabe akzeptiert wird. In der PowerShell-Konsole unterdrückt dieses Cmdlet die Eingabeaufforderung, bis die Prozesse beendet werden. Sie können einen Prozess durch Prozessname oder Prozess-ID (PID) angeben oder ein Prozessobjekt an Wait-Process
das Objekt weiterzuleitungen.
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 dann gewartet, bis der Prozess beendet wird, bevor er mit dem nächsten Befehl fortgesetzt wird.
Der erste Befehl verwendet das Get-Process
Cmdlet, um die ID des Editor Prozesses abzurufen. Sie speichert die ID in der $nid
Variablen.
Der zweite Befehl verwendet das Stop-Process
Cmdlet, um den Prozess mit der in $nid
gespeicherten ID zu beenden.
Der dritte Befehl verwendetWait-Process
, um zu warten, bis der Editor Prozess beendet wird. Er verwendet den ID-Parameter , um Wait-Process
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 an Wait-Process
. Der erste Befehl ruft den Editor Prozess ab und speichert ihn in der $p
Variablen.
Der zweite Befehl verwendet den Parameter "ID ", der dritte Befehl verwendet den Parameter "Name ", und der vierte Befehl verwendet den InputObject-Parameter .
Die Ergebnisse dieser Befehle sind identisch und austauschbar.
Beispiel 3: Warten auf Prozesse für eine bestimmte Zeit
PS C:\> Wait-Process -Name outlook, winword -Timeout 30
Dieser Befehl wartet 30 Sekunden, dass die Prozesse %%amp;quot;Outlook%%amp;quot; und %%amp;quot;Winword%%amp;quot; beendet werden. Wenn beide Prozesse nicht beendet werden, zeigt das Cmdlet einen Fehler ohne Abbruch sowie die Eingabeaufforderung an.
Parameter
-Id
Gibt die Prozess-IDs der Prozesse an. Wenn Sie mehrere IDs angeben, trennen Sie diese durch Kommas.
Um die PID eines Prozesses zu finden, geben Sie folgendes ein Get-Process
.
Type: | Int32[] |
Aliases: | PID, ProcessId |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | 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 Get-Process
Cmdlet.
Type: | Process[] |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Name
Gibt die Prozessnamen der Prozesse an. Wenn Sie mehrere Namen angeben, trennen Sie diese durch Kommas. Platzhalterzeichen werden nicht unterstützt.
Type: | String[] |
Aliases: | ProcessName |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | 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 Fehler ohne Abbruch an, bei dem die noch ausgeführten Prozesse aufgeführt werden, und beendet den Wartevorgang. Standardmäßig ist kein Timeout vorhanden.
Type: | Int32 |
Aliases: | TimeoutSec |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Eingaben
Sie können ein Prozessobjekt an dieses Cmdlet weiterleiten.
Ausgaben
None
Dieses Cmdlet gibt keine Ausgabe zurück.
Hinweise
Dieses Cmdlet verwendet die WaitForExit-Methode der System.Diagnostics.Process-Klasse .
Im Gegensatz dazu
Start-Process -Wait
Wait-Process
wartet nur auf die identifizierten Prozesse.Start-Process -Wait
wartet, bis die Prozessstruktur (der Prozess und alle untergeordneten Elemente) vor dem Zurückgeben des Steuerelements beendet werden.
Ähnliche Themen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für