Wait-Process
Před přijetím dalšího vstupu počká na zastavení procesů.
Syntaxe
Wait-Process
[-Name] <String[]>
[[-Timeout] <Int32>]
[<CommonParameters>]
Wait-Process
[-Id] <Int32[]>
[[-Timeout] <Int32>]
[<CommonParameters>]
Wait-Process
[[-Timeout] <Int32>]
-InputObject <Process[]>
[<CommonParameters>]
Description
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 do Wait-Process
.
Wait-Process
funguje pouze na procesech spuštěných v místním počítači.
Příklady
Příklad 1: Zastavení procesu a čekání
PS C:\> $nid = (Get-Process notepad).id
PS C:\> Stop-Process -Id $nid
PS C:\> Wait-Process -Id $nid
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.
První příkaz pomocí rutiny Get-Process
získá ID procesu Poznámkového bloku. Uloží ID do $nid
proměnné.
Druhý příkaz pomocí rutiny Stop-Process
zastaví proces s ID uloženým v $nid
.
Třetí příkaz používá Wait-Process
k čekání na zastavení procesu Poznámkového bloku. K identifikaci procesu používá parametr Wait-Process
ID.
Příklad 2: Určení 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
Tyto příkazy zobrazují tři různé metody určení procesu do Wait-Process
. První příkaz získá proces Poznámkového bloku a uloží ho $p
do proměnné.
Druhý příkaz používá parametr ID, třetí příkaz používá parametr Name a čtvrtý příkaz používá parametr InputObject.
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
PS C:\> Wait-Process -Name outlook, winword -Timeout 30
Tento příkaz počká 30 sekund, než se zastaví procesy Outlooku a Winwordu. Pokud oba procesy nejsou zastavené, zobrazí rutina neukončující chybu a příkazový řádek.
Parametry
-Id
Určuje ID procesů procesů. Pokud chcete zadat více ID, oddělte ID čárkami.
Chcete-li najít 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 |
-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
Tato rutina nevrátí žádný výstup.
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.