Wait-Process
等候進程停止,再接受更多輸入。
語法
Name (預設值)
Wait-Process
[-Name] <String[]>
[[-Timeout] <Int32>]
[<CommonParameters>]
Id
Wait-Process
[-Id] <Int32[]>
[[-Timeout] <Int32>]
[<CommonParameters>]
InputObject
Wait-Process
[[-Timeout] <Int32>]
-InputObject <Process[]>
[<CommonParameters>]
Description
此 cmdlet 不適用於 Linux 或 macOS。
Wait-Process Cmdlet 會等候一或多個執行中的進程在接受輸入之前停止。 在 PowerShell 控制台中,此 Cmdlet 會隱藏命令提示字元,直到行程停止為止。 您可以依行程名稱或行程識別碼 (PID) 指定行程,或使用管線將行程物件傳送至 Wait-Process。
Wait-Process 僅適用於本機計算機上執行的進程。
範例
範例 1:停止進程並等候
本範例會停止 記事本 程式,然後等候進程停止,再繼續進行下一個命令。
$nid = (Get-Process notepad).id
Stop-Process -Id $nid
Wait-Process -Id $nid
Get-Process Cmdlet 會取得 記事本 進程的進程標識碼,並將它儲存在 $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。
參數屬性
| 類型: | Int32[] |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | PID, ProcessId |
參數集
Id
| Position: | 0 |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
-InputObject
藉由提交進程物件來指定進程。 輸入包含進程物件的變數,或輸入取得進程物件的命令或表達式,例如 Get-Process Cmdlet。
參數屬性
| 類型: | Process[] |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
InputObject
| Position: | Named |
| 必要: | True |
| 來自管線的值: | True |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Name
指定進程的進程名稱。 若要指定多個名稱,請使用逗號來分隔名稱。 不支援萬用字元。
參數屬性
| 類型: | String[] |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | ProcessName |
參數集
Name
| Position: | 0 |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
-Timeout
指定此 Cmdlet 等候指定進程停止的最大時間,以秒為單位。 當此間隔到期時,命令會顯示非終止錯誤,其中會列出仍在執行的進程,並結束等候。 根據預設,沒有逾時。
參數屬性
| 類型: | Int32 |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | TimeoutSec |
參數集
(All)
| Position: | 1 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
CommonParameters
此 Cmdlet 支援一般參數:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 如需詳細資訊,請參閱 about_CommonParameters。
輸入
Process
您可以將進程物件透過管線傳送至此 Cmdlet。
輸出
None
此 Cmdlet 不會傳回任何輸出。
備註
此 Cmdlet 使用 System.Diagnostics.Process 類別的 WaitForExit 方法。
與
Start-Process -Wait不同,Wait-Process只會等候所識別的進程。Start-Process -Wait等候進程樹狀結構(進程及其所有子系)在傳回控件之前結束。