Wait-Process
Czeka na zatrzymanie procesów przed zaakceptowaniem większej liczby danych wejściowych.
Składnia
Wait-Process
[-Name] <String[]>
[[-Timeout] <Int32>]
[<CommonParameters>]
Wait-Process
[-Id] <Int32[]>
[[-Timeout] <Int32>]
[<CommonParameters>]
Wait-Process
[[-Timeout] <Int32>]
-InputObject <Process[]>
[<CommonParameters>]
Opis
To polecenie cmdlet nie działa w systemie Linux lub macOS.
Polecenie Wait-Process
cmdlet czeka na zatrzymanie co najmniej jednego uruchomionego procesu przed zaakceptowaniem danych wejściowych. W konsoli programu PowerShell to polecenie cmdlet pomija wiersz polecenia do momentu zatrzymania procesów. Proces można określić według nazwy procesu lub identyfikatora procesu (PID) lub potoku obiektu procesu do Wait-Process
.
Wait-Process
działa tylko w przypadku procesów uruchomionych na komputerze lokalnym.
Przykłady
Przykład 1: Zatrzymywanie procesu i oczekiwanie
Ten przykład zatrzymuje proces Notatnika , a następnie czeka na zatrzymanie procesu przed kontynuowaniem przy użyciu następnego polecenia.
$nid = (Get-Process notepad).id
Stop-Process -Id $nid
Wait-Process -Id $nid
Polecenie Get-Process
cmdlet pobiera identyfikator procesu procesu notatnika i zapisuje go w zmiennej $nid
. Stop-Process
zatrzymuje proces z identyfikatorem przechowywanym w $nid
pliku . Wait-Process
czeka na zatrzymanie procesu Notatnika .
Przykład 2: Określanie procesu
W tym przykładzie przedstawiono trzy różne metody określania procesu na Wait-Process
. Pierwsze polecenie pobiera proces Notatnika i zapisuje go w zmiennej $p
. Drugie polecenie używa parametru Id , trzecie polecenie używa parametru Name , a czwarte polecenie używa parametru InputObject .
$p = Get-Process notepad
Wait-Process -Id $p.id
Wait-Process -Name "notepad"
Wait-Process -InputObject $p
Te polecenia mają te same wyniki i mogą być używane zamiennie.
Przykład 3. Oczekiwanie na procesy przez określony czas
W tym przykładzie Wait-Process
poczeka 30 sekund na zatrzymanie procesów programu Outlook i winword . Jeśli oba procesy nie zostaną zatrzymane, polecenie cmdlet wyświetli błąd niepowodujący zakończenia i wiersz polecenia.
Wait-Process -Name outlook, winword -Timeout 30
Parametry
-Id
Określa identyfikatory procesów procesów. Aby określić wiele identyfikatorów, użyj przecinków, aby oddzielić identyfikatory.
Aby znaleźć identyfikator PID procesu, wpisz Get-Process
.
Type: | Int32[] |
Aliases: | PID, ProcessId |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-InputObject
Określa procesy, przesyłając obiekty procesu. Wprowadź zmienną zawierającą obiekty procesu lub wpisz polecenie lub wyrażenie, które pobiera obiekty procesu, takie jak Get-Process
polecenie cmdlet.
Type: | Process[] |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Name
Określa nazwy procesów. Aby określić wiele nazw, użyj przecinków, aby oddzielić nazwy. Symbole wieloznaczne nie są obsługiwane.
Type: | String[] |
Aliases: | ProcessName |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Timeout
Określa maksymalny czas w sekundach, który to polecenie cmdlet oczekuje na zatrzymanie określonych procesów. Po wygaśnięciu tego interwału polecenie wyświetla błąd niepowodujący zakończenia, który wyświetla listę procesów, które są nadal uruchomione, i kończy oczekiwanie. Domyślnie nie ma limitu czasu.
Type: | Int32 |
Aliases: | TimeoutSec |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Dane wejściowe
Do tego polecenia cmdlet można przekazać obiekt procesu.
Dane wyjściowe
None
To polecenie cmdlet nie zwraca żadnych danych wyjściowych.
Uwagi
To polecenie cmdlet używa metody WaitForExit klasy System.Diagnostics.Process .
W przeciwieństwie do
Start-Process -Wait
metodyWait-Process
oczekuje tylko na zidentyfikowane procesy.Start-Process -Wait
czeka na drzewo procesów (proces i wszystkie jego elementy podrzędne) do zakończenia przed zwróceniem kontrolki.