Wait-Process
Před přijetím dalšího vstupu počká na zastavení procesů.
Syntaxe
Wait-Process
[-Name] <String[]>
[[-Timeout] <Int32>]
[-Any]
[-PassThru]
[<CommonParameters>]
Wait-Process
[-Id] <Int32[]>
[[-Timeout] <Int32>]
[-Any]
[-PassThru]
[<CommonParameters>]
Wait-Process
[[-Timeout] <Int32>]
[-Any]
[-PassThru]
-InputObject <Process[]>
[<CommonParameters>]
Description
Tato rutina nefunguje v Linuxu nebo macOS.
Rutina Wait-Process
před přijetím vstupu čeká na zastavení jednoho nebo více spuštěných procesů. V konzole PowerShellu tato rutina potlačí příkazový řádek, dokud se procesy nezastaví. Proces můžete zadat podle názvu procesu nebo ID procesu (PID) nebo předvést objekt procesu, který se má Wait-Process
.
Wait-Process
funguje jenom na procesech spuštěných v místním počítači.
Příklady
Příklad 1: Zastavení procesu a čekání
Tento příklad zastaví proces Poznámkového bloku a potom počká, až se proces zastaví, než bude pokračovat dalším příkazem.
$nid = (Get-Process notepad).Id
Stop-Process -Id $nid
Wait-Process -Id $nid
Rutina Get-Process
získá ID procesu procesu Poznámkového bloku a uloží ho do proměnné $nid
.
Stop-Process
zastaví proces s ID uloženým v $nid
.
Wait-Process
počká, až se proces poznámkového bloku zastaví.
Příklad 2: Určení procesu
Tento příklad ukazuje tři různé metody určení procesu Wait-Process
. První příkaz získá proces Poznámkového bloku a uloží ho do proměnné $p
. Druhý příkaz používá parametr ID, třetí příkaz používá parametr Name a čtvrtý příkaz používá parametr InputObject.
$p = Get-Process notepad
Wait-Process -Id $p.id
Wait-Process -Name "notepad"
Wait-Process -InputObject $p
Tyto příkazy mají stejné výsledky a dají se použít zaměnitelně.
Příklad 3: Čekání na procesy po určitou dobu
V tomto příkladu Wait-Process
počká 30 sekund na zastavení procesů Outlook a winword. Pokud oba procesy nejsou zastavené, zobrazí rutina neukončující chybu a příkazový řádek.
Wait-Process -Name outlook, winword -Timeout 30
Parametry
-Any
Pokud se do Wait-Process
předá více procesů, rutina před návratem čeká na ukončení všech procesů. Pomocí tohoto parametru se rutina vrátí, když se některý z procesů ukončí. Zbývající procesy se budou dál spouštět.
Tento parametr byl přidán v PowerShellu 7.4.
Typ: | SwitchParameter |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Id
Určuje ID procesů procesů. Pokud chcete zadat více ID, oddělte ID čárkami.
Chcete-li najít KÓD PID procesu, zadejte Get-Process
.
Typ: | Int32[] |
Aliasy: | PID, ProcessId |
Position: | 0 |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | False |
-InputObject
Určuje procesy odesláním objektů procesu. Zadejte proměnnou, která obsahuje objekty procesu, nebo zadejte příkaz nebo výraz, který získá objekty procesu, například rutinu Get-Process
.
Typ: | Process[] |
Position: | Named |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | False |
-Name
Určuje názvy procesů. Pokud chcete zadat více názvů, oddělte názvy čárkami. Zástupné znaky nejsou podporovány.
Typ: | String[] |
Aliasy: | ProcessName |
Position: | 0 |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | False |
-PassThru
Ve výchozím nastavení tato rutina nic nevypíše. Pomocí tohoto parametru rutina vrátí objekty představující procesy, na které byly čekat.
Tento parametr byl přidán v PowerShellu 7.4.
Typ: | SwitchParameter |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Timeout
Určuje maximální dobu v sekundách, po kterou tato rutina čeká na zastavení zadaných procesů. Po vypršení tohoto intervalu zobrazí příkaz neukončující chybu se seznamem spuštěných procesů a ukončí čekání. Ve výchozím nastavení neexistuje žádný časový limit.
Typ: | Int32 |
Aliasy: | TimeoutSec |
Position: | 1 |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
Vstupy
Objekt procesu můžete do této rutiny převést.
Výstupy
None
Ve výchozím nastavení tato rutina nevrací žádný výstup.
Rutina vrátí objekty procesu při použití parametru PassThru.
Poznámky
Tato rutina používá metodu WaitForExit třídy System.Diagnostics.Process.
Na rozdíl od
Start-Process -Wait
Wait-Process
čeká pouze na zjištěné procesy.Start-Process -Wait
čeká na ukončení stromu procesu (procesu a všech jeho potomků) před vrácením ovládacího prvku.