Wait-Process
Czeka na zatrzymanie procesów przed zaakceptowaniem większej liczby danych wejściowych.
Składnia
Name (Domyślna)
Wait-Process
[-Name] <String[]>
[[-Timeout] <Int32>]
[-Any]
[-PassThru]
[<CommonParameters>]
Id
Wait-Process
[-Id] <Int32[]>
[[-Timeout] <Int32>]
[-Any]
[-PassThru]
[<CommonParameters>]
InputObject
Wait-Process
[[-Timeout] <Int32>]
-InputObject <Process[]>
[-Any]
[-PassThru]
[<CommonParameters>]
Opis
To polecenie cmdlet nie działa w systemie Linux lub macOS.
Polecenie cmdlet Wait-Process oczekuje 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 w celu 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 za pomocą następnego polecenia.
$nid = (Get-Process notepad).Id
Stop-Process -Id $nid
Wait-Process -Id $nid
Polecenie cmdlet Get-Process pobiera identyfikator procesu Notatnika procesu i zapisuje go w zmiennej $nid.
Stop-Process zatrzymuje proces z identyfikatorem przechowywanym w $nid.
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 w celu Wait-Process. Pierwsze polecenie pobiera proces Notatnika i zapisuje go w zmiennej $p. Drugie polecenie używa parametru identyfikatora
$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 czeka 30 sekund na zatrzymanie procesów 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
-Any
Po przekazaniu wielu procesów do Wait-Processpolecenie cmdlet czeka na zakończenie wszystkich procesów przed powrotem. Za pomocą tego parametru polecenie cmdlet zwraca polecenie cmdlet, gdy którykolwiek z procesów zakończy działanie. Pozostałe procesy będą nadal działać.
Ten parametr został dodany w programie PowerShell 7.4.
Właściwości parametru
| Typ: | SwitchParameter |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
(All)
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-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.
Właściwości parametru
| Typ: | Int32[] |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
| Aliasy: | identyfikator PID, Identyfikator procesu |
Zestawy parametrów
Id
| Position: | 0 |
| Obowiązkowy: | True |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | True |
| Wartość z pozostałych argumentów: | 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 polecenie cmdlet Get-Process.
Właściwości parametru
| Typ: | Process[] |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
InputObject
| Position: | Named |
| Obowiązkowy: | True |
| Wartość z potoku: | True |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | 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.
Właściwości parametru
| Typ: | String[] |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
| Aliasy: | Nazwa procesu |
Zestawy parametrów
Name
| Position: | 0 |
| Obowiązkowy: | True |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | True |
| Wartość z pozostałych argumentów: | False |
-PassThru
Domyślnie to polecenie cmdlet nie generuje żadnych danych wyjściowych. Za pomocą tego parametru polecenie cmdlet zwraca obiekty reprezentujące procesy, które zostały zaczekane.
Ten parametr został dodany w programie PowerShell 7.4.
Właściwości parametru
| Typ: | SwitchParameter |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
(All)
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | 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.
Właściwości parametru
| Typ: | Int32 |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
| Aliasy: | Limit czasowy |
Zestawy parametrów
(All)
| Position: | 1 |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
CommonParameters
To polecenie cmdlet obsługuje typowe parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction i -WarningVariable. Aby uzyskać więcej informacji, zobacz about_CommonParameters.
Dane wejściowe
Process
Do tego polecenia cmdlet można przekazać obiekt procesu.
Dane wyjściowe
None
Domyślnie to polecenie cmdlet nie zwraca żadnych danych wyjściowych.
Process
Polecenie cmdlet zwraca obiekty procesów podczas używania parametru PassThru.
Uwagi
To polecenie cmdlet używa metody WaitForExit klasy System.Diagnostics.Process.
W przeciwieństwie do
Start-Process -WaitWait-Processczeka tylko na zidentyfikowane procesy.Start-Process -Waitczeka na zakończenie drzewa procesów (procesu i wszystkich jego elementów potomnych) przed zwróceniem kontrolki.