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-Process
väntar tills anteckningarna 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-processen 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-Process
vä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.
Typ: | SwitchParameter |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | 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
.
Typ: | Int32[] |
Alias: | PID, ProcessId |
Position: | 0 |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | 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
.
Typ: | Process[] |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | 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.
Typ: | String[] |
Alias: | ProcessName |
Position: | 0 |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | 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.
Typ: | SwitchParameter |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | 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.
Typ: | Int32 |
Alias: | TimeoutSec |
Position: | 1 |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
Indata
Du kan skicka ett processobjekt till den här cmdleten.
Utdata
None
Som standard returnerar den här cmdleten inga utdata.
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 -Wait
väntarWait-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.