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 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-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.
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
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.
Relaterade länkar
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för