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
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
PS C:\> $nid = (Get-Process notepad).id
PS C:\> Stop-Process -Id $nid
PS C:\> Wait-Process -Id $nid
Ten przykład zatrzymuje proces Notatnika, a następnie czeka na zatrzymanie procesu przed kontynuowaniem przy użyciu następnego polecenia.
Pierwsze polecenie używa Get-Process
polecenia cmdlet do pobrania identyfikatora procesu Notatnika. Przechowuje identyfikator w zmiennej $nid
.
Drugie polecenie używa Stop-Process
polecenia cmdlet , aby zatrzymać proces przy użyciu identyfikatora przechowywanego w $nid
pliku .
Trzecie polecenie używa Wait-Process
polecenia do oczekiwania na zatrzymanie procesu Notatnika. Używa parametru Id parametru Wait-Process
, aby zidentyfikować proces.
Przykład 2. Określanie procesu
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
Te polecenia pokazują 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 .
Te polecenia mają te same wyniki i mogą być używane zamiennie.
Przykład 3. Oczekiwanie na procesy przez określony czas
PS C:\> Wait-Process -Name outlook, winword -Timeout 30
To polecenie czeka 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.
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
.
Typ: | Int32[] |
Aliasy: | PID, ProcessId |
Position: | 0 |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | 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.
Typ: | Process[] |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | 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.
Typ: | String[] |
Aliasy: | ProcessName |
Position: | 0 |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | 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 bez zakończenia, który wyświetla listę procesów, które są nadal uruchomione, i kończy oczekiwanie. Domyślnie nie ma limitu czasu.
Typ: | Int32 |
Aliasy: | TimeoutSec |
Position: | 1 |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | 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
metody ,Wait-Process
oczekuje tylko na zidentyfikowane procesy.Start-Process -Wait
czeka na drzewo procesów (proces i wszystkie jego elementy potomne) do zakończenia przed zwróceniem kontrolki.