Wait-Process

Před přijetím dalšího vstupu počká na zastavení procesů.

Syntax

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 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í

Tento příklad zastaví proces Poznámkový blok 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 Poznámkový blok procesu a uloží ho $nid do proměnné. Stop-Process zastaví proces s ID uloženým v $nid. Wait-Processčeká, dokud se proces Poznámkový blok nezastaví.

Příklad 2: Určení procesu

Tento příklad ukazuje tři různé metody určení procesu do Wait-Process. První příkaz získá proces Poznámkový blok 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.

$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, než se zastaví procesy Outlooku a Winwordu. Pokud oba procesy nejsou zastavené, zobrazí rutina neukončující chybu a příkazový řádek.

Wait-Process -Name outlook, winword -Timeout 30

Parametry

-Any

Když se předá Wait-Processvíce procesů, rutina před vrácením č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.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-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.

Type:Int32[]
Aliases:PID, ProcessId
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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 .

Type:Process[]
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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.

Type:String[]
Aliases:ProcessName
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:Int32
Aliases:TimeoutSec
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Vstupy

Process

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.

Process

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.