Wait-Process

Väntar på att processerna ska stoppas innan du accepterar fler indata.

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

Den här cmdleten fungerar inte på Linux eller macOS.

Cmdleten Wait-Process väntar på att en eller flera processer som körs ska stoppas innan indata accepteras. I PowerShell-konsolen undertrycker den här cmdleten kommandotolken tills processerna stoppas. Du kan ange en process efter processnamn eller process-ID (PID) eller skicka ett processobjekt till Wait-Process.

Wait-Process fungerar bara på processer som körs på den lokala datorn.

Exempel

Exempel 1: Stoppa en process och vänta

Det här exemplet stoppar Anteckningar processen och väntar sedan på att processen ska stoppas innan den fortsätter med nästa kommando.

$nid = (Get-Process notepad).id
Stop-Process -Id $nid
Wait-Process -Id $nid

Cmdleten Get-Process hämtar process-ID för Anteckningar processen och lagrar den i variabeln$nid. Stop-Process stoppar processen med det ID som lagras i $nid. Wait-Processväntar tills Anteckningar processen har stoppats.

Exempel 2: Ange en process

Det här exemplet visar tre olika metoder för att ange en process till Wait-Process. Det första kommandot hämtar Anteckningar process och lagrar den i variabeln$p. Det andra kommandot använder ID-parametern , det tredje kommandot använder parametern Namn och det fjärde kommandot använder parametern InputObject .

$p = Get-Process notepad
Wait-Process -Id $p.id
Wait-Process -Name "notepad"
Wait-Process -InputObject $p

Dessa kommandon har samma resultat och kan användas omväxlande.

Exempel 3: Vänta på processer under en angiven tid

I det här exemplet Wait-Process väntar 30 sekunder på att Outlook - och Winword-processerna ska stoppas. Om båda processerna inte stoppas visar cmdleten ett icke-avslutande fel och kommandotolken.

Wait-Process -Name outlook, winword -Timeout 30

Parametrar

-Any

När flera processer skickas till Wait-Processväntar cmdleten på att alla processer ska avslutas innan de returneras. Med den här parametern returnerar cmdleten när någon av processerna avslutas. De återstående processerna fortsätter att köras.

Den här parametern lades till i PowerShell 7.4.

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

-Id

Anger process-ID:t för processerna. Om du vill ange flera ID:er använder du kommatecken för att separera ID:erna. Om du vill hitta PID:en för en process skriver du Get-Process.

Type:Int32[]
Aliases:PID, ProcessId
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-InputObject

Anger processerna genom att skicka processobjekt. Ange en variabel som innehåller processobjekten eller skriv ett kommando eller uttryck som hämtar processobjekten, till exempel cmdleten Get-Process .

Type:Process[]
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Name

Anger processnamnen för processerna. Om du vill ange flera namn använder du kommatecken för att avgränsa namnen. Jokertecken stöds inte.

Type:String[]
Aliases:ProcessName
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-PassThru

Den här cmdleten matar som standard inte ut något. Med den här parametern returnerar cmdleten objekt som representerar de processer som väntades på.

Den här parametern lades till i PowerShell 7.4.

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

-Timeout

Anger den maximala tid i sekunder som den här cmdleten väntar på att de angivna processerna ska stoppas. När det här intervallet upphör att gälla visar kommandot ett icke-avslutande fel som visar de processer som fortfarande körs och avslutar väntan. Som standard finns det ingen tidsgräns.

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

Indata

Process

Du kan skicka ett processobjekt till den här cmdleten.

Utdata

None

Som standard returnerar den här cmdleten inga utdata.

Process

Cmdleten returnerar processobjekt när du använder parametern PassThru .

Kommentarer

  • Den här cmdleten använder metoden WaitForExit i klassen System.Diagnostics.Process .

  • Till skillnad från Start-Process -Waitväntar Wait-Process bara på de identifierade processerna. Start-Process -Wait väntar på att processträdet (processen och alla dess underordnade) ska avslutas innan kontrollen returneras.