Wait-Process
Väntar på att processerna ska stoppas innan du accepterar fler indata.
Syntax
Name (Standard)
Wait-Process
[-Name] <String[]>
[[-Timeout] <Int32>]
[<CommonParameters>]
Id
Wait-Process
[-Id] <Int32[]>
[[-Timeout] <Int32>]
[<CommonParameters>]
InputObject
Wait-Process
[[-Timeout] <Int32>]
-InputObject <Process[]>
[<CommonParameters>]
Description
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
PS C:\> $nid = (Get-Process notepad).Id
PS C:\> Stop-Process -Id $nid
PS C:\> Wait-Process -Id $nid
Det här exemplet stoppar Anteckningar-processen och väntar sedan på att processen ska stoppas innan den fortsätter med nästa kommando.
Det första kommandot använder cmdleten Get-Process för att hämta ID:t för Anteckningar-processen. ID:t lagras i variabeln $nid.
Det andra kommandot använder cmdleten Stop-Process för att stoppa processen med det ID som lagras i $nid.
Det tredje kommandot använder Wait-Process för att vänta tills anteckningar har stoppats. Den använder parametern ID för Wait-Process för att identifiera processen.
Exempel 2: Ange en process
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
Dessa kommandon visar tre olika metoder för att ange en process för att Wait-Process. Det första kommandot hämtar Anteckningar-processen och lagrar den i variabeln $p.
Det andra kommandot använder parametern ID, det tredje kommandot använder parametern Name och det fjärde kommandot använder parametern InputObject.
Dessa kommandon har samma resultat och kan användas omväxlande.
Exempel 3: Vänta på processer under en angiven tid
PS C:\> Wait-Process -Name outlook, winword -Timeout 30
Det här kommandot 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.
Parametrar
-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.
Parameteregenskaper
| Typ: | Int32[] |
| Standardvärde: | None |
| Stöder jokertecken: | False |
| DontShow: | False |
| Alias: | PID, ProcessId |
Parameteruppsättningar
Id
| Position: | 0 |
| Obligatorisk: | True |
| Värde från pipeline: | False |
| Värde från pipeline efter egenskapsnamn: | True |
| Värde från återstående argument: | 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.
Parameteregenskaper
| Typ: | Process[] |
| Standardvärde: | None |
| Stöder jokertecken: | False |
| DontShow: | False |
Parameteruppsättningar
InputObject
| Position: | Named |
| Obligatorisk: | True |
| Värde från pipeline: | True |
| Värde från pipeline efter egenskapsnamn: | False |
| Värde från återstående argument: | 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.
Parameteregenskaper
| Typ: | String[] |
| Standardvärde: | None |
| Stöder jokertecken: | False |
| DontShow: | False |
| Alias: | ProcessName |
Parameteruppsättningar
Name
| Position: | 0 |
| Obligatorisk: | True |
| Värde från pipeline: | False |
| Värde från pipeline efter egenskapsnamn: | True |
| Värde från återstående argument: | 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.
Parameteregenskaper
| Typ: | Int32 |
| Standardvärde: | None |
| Stöder jokertecken: | False |
| DontShow: | False |
| Alias: | TimeoutSec |
Parameteruppsättningar
(All)
| Position: | 1 |
| Obligatorisk: | False |
| Värde från pipeline: | False |
| Värde från pipeline efter egenskapsnamn: | False |
| Värde från återstående argument: | False |
CommonParameters
Den här cmdleten stöder vanliga parametrar: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction och -WarningVariable. Mer information finns i about_CommonParameters.
Indata
Process
Du kan skicka ett processobjekt till den här cmdleten.
Utdata
None
Den här cmdleten returnerar inga utdata.
Kommentarer
Den här cmdleten använder metoden WaitForExit i klassen System.Diagnostics.Process.
Till skillnad från
Start-Process -WaitväntarWait-Processbara på de identifierade processerna.Start-Process -Waitväntar på att processträdet (processen och alla underordnade) ska avslutas innan kontrollen returneras.