Wait-Process
等候處理程序停止之後,才接受其他輸入。
Syntax
Wait-Process
[-Name] <String[]>
[[-Timeout] <Int32>]
[<CommonParameters>]
Wait-Process
[-Id] <Int32[]>
[[-Timeout] <Int32>]
[<CommonParameters>]
Wait-Process
[[-Timeout] <Int32>]
-InputObject <Process[]>
[<CommonParameters>]
Description
此 Cmdlet 無法在 Linux 或 macOS 上運作。
Cmdlet Wait-Process
會等候一或多個執行中的進程在接受輸入之前停止。 在 PowerShell 控制台中,此 Cmdlet 會隱藏命令提示字元,直到行程停止為止。 您可以透過行程名稱或行程識別碼來指定行程, (PID) ,或使用管線將行程物件傳送至 Wait-Process
。
Wait-Process
僅適用於在本機計算機上執行的進程。
範例
範例 1︰停止處理程序並等候
本範例會停止 記事本 程式,然後等候進程停止,再繼續進行下一個命令。
$nid = (Get-Process notepad).id
Stop-Process -Id $nid
Wait-Process -Id $nid
Cmdlet Get-Process
會取得 記事本 進程的進程標識符,並將它儲存在變數中 $nid
。 Stop-Process
會停止儲存在中的 $nid
標識碼的進程。 Wait-Process
會等到 記事本 程式停止為止。
範例 2︰指定處理程序
這個範例示範三種不同的方法,將行程指定為 Wait-Process
。 第一個命令會取得記事本程式,並將它儲存在變數中 $p
。 第二個命令會使用 Id 參數、第三個命令會使用 Name 參數,而第四個命令會使用 InputObject 參數。
$p = Get-Process notepad
Wait-Process -Id $p.id
Wait-Process -Name "notepad"
Wait-Process -InputObject $p
這些命令的結果皆相同,並且可交換使用。
範例 3︰等候處理程序一段指定的時間
在此範例中, Wait-Process
等候 30 秒讓 Outlook 和 Winword 程式停止。 如果這兩個處理程序都沒有停止,則此 Cmdlet 會顯示一個非終止錯誤和命令提示字元。
Wait-Process -Name outlook, winword -Timeout 30
參數
-Id
指定處理程序的處理程序識別碼。 若要指定多個識別碼,請使用逗號來分隔識別碼。
若要尋找處理程序的 PID,請輸入 Get-Process
。
Type: | Int32[] |
Aliases: | PID, ProcessId |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-InputObject
藉由送出處理程序物件來指定處理程序。 輸入包含進程物件的變數,或輸入取得進程物件的命令或表達式,例如 Get-Process
Cmdlet。
Type: | Process[] |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Name
指定處理程序的處理程序名稱。 若要指定多個名稱,請使用逗號來分隔名稱。 不支援萬用字元。
Type: | String[] |
Aliases: | ProcessName |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Timeout
指定此 Cmdlet 等候指定之處理程序停止的時間上限 (秒)。 當這個間隔時間過期時,此命令會顯示一個非終止錯誤,當中列出仍在執行的處理程序,然後結束等候。 預設是沒有逾時。
Type: | Int32 |
Aliases: | TimeoutSec |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
輸入
您可以使用管線將處理程序物件傳送至此 Cmdlet。
輸出
None
此 Cmdlet 不會產生任何輸出。
備註
此 Cmdlet 會使用 System.Diagnostics.Process 類別的 WaitForExit 方法。
不同於
Start-Process -Wait
,Wait-Process
只會等候識別的進程。Start-Process -Wait
會等候進程樹狀結構 (進程及其所有子系) 結束,然後再傳回控件。