Wait-Process
等待程序停止後才接受更多輸入。
語法
Name (預設值)
Wait-Process
[-Name] <String[]>
[[-Timeout] <Int32>]
[-Any]
[-PassThru]
[<CommonParameters>]
Id
Wait-Process
[-Id] <Int32[]>
[[-Timeout] <Int32>]
[-Any]
[-PassThru]
[<CommonParameters>]
InputObject
Wait-Process
[[-Timeout] <Int32>]
-InputObject <Process[]>
[-Any]
[-PassThru]
[<CommonParameters>]
Description
這個指令檔在 Linux 或 macOS 上無法運作。
Wait-Process指令長會等待一個或多個正在執行的程序停止後才接受輸入。 在 PowerShell 主控台中,這個指令小程式會抑制命令提示字元,直到程序停止。 你可以透過程序名稱或程序 ID(PID)指定程序,或將程序物件管線傳送到 Wait-Process。
Wait-Process 僅適用於本地電腦上運行的程序。
範例
範例 1:停止程序並等待
此範例會停止 記事本 程序,然後等待程序停止後,才繼續執行下一個指令。
$nid = (Get-Process notepad).Id
Stop-Process -Id $nid
Wait-Process -Id $nid
指令小說會 Get-Process 取得 記事本 程序的程序 ID,並將其儲存在變數中 $nid 。
Stop-Process 停止將 ID 儲存在 $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 -Name outlook, winword -Timeout 30
參數
-Any
當多個程序被傳送至 Wait-Process時,指令長會等待所有程序退出後再返回。 使用此參數後,當任何程序退出時,指令檔會回傳。 剩下的程序繼續運行。
此參數已在PowerShell 7.4中新增。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Id
指定程序的程序識別碼。 要指定多個 ID,請用逗號分隔這些 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 |
-PassThru
預設情況下,這個 cmdlet 不會輸出任何東西。 使用此參數,指令長會回傳代表被等待程序的物件。
此參數已在PowerShell 7.4中新增。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Timeout
指定此指令子等待指定程序停止的最大時間(秒數)。 當此間隔結束時,指令會顯示一個非終止錯誤,列出仍在執行的程序,並結束等待。 預設情況下,沒有暫停。
參數屬性
| 類型: | 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 不會傳回任何輸出。
Process
當你使用 PassThru 參數時,指令檔會回傳 process 物件。
備註
此指令小程式使用 System.Diagnostics.Process 類別的 Exited 事件。
與
Start-Process -Wait不同,Wait-Process只等待所識別的程序。Start-Process -Wait等待程序樹(程序及其所有後代)退出後,才會恢復控制權。