Wait-Process
先等候處理序停止,然後再接受其他的輸入。
語法
Wait-Process [-Id] <Int32[]> [[-Timeout] <int>] [<CommonParameters>]
Wait-Process -InputObject <Process[]> [[-Timeout] <int>] [<CommonParameters>]
Wait-Process [-Name] <string[]> [[-Timeout] <int>] [<CommonParameters>]
描述
Wait-Process Cmdlet 會先等候一個或多個執行中的處理序停止,然後再接受其他的輸入。在 Windows PowerShell 主控台中,這個 Cmdlet 會抑制命令提示字元,直到處理序停止。您可以依處理序名稱或是處理序識別碼 (PID) 指定處理序,或是透過管線將處理序物件傳遞給 Wait-Process。
Wait-Process 只適用於本機電腦上執行的處理序。
參數
-Id <Int32[]>
指定處理序的處理序識別碼。若要指定多個識別碼,請使用逗號來分隔識別碼。若要尋找處理序的 PID,請輸入 "Get-Process"。參數名稱 ("Id") 為選擇項。
必要? |
true |
位置? |
1 |
預設值 |
|
接受管線輸入? |
true (ByPropertyName) |
接受萬用字元? |
false |
-InputObject <Process[]>
透過提交處理序物件指定處理序。輸入包含處理序物件的變數或輸入可取得處理序物件的命令或運算式,如 Get-Process 命令。
必要? |
true |
位置? |
named |
預設值 |
|
接受管線輸入? |
true (ByValue) |
接受萬用字元? |
false |
-Name <string[]>
指定處理序的處理序名稱。若要指定多個名稱,請使用逗號來分隔名稱。
必要? |
true |
位置? |
1 |
預設值 |
|
接受管線輸入? |
true (ByPropertyName) |
接受萬用字元? |
false |
-Timeout <int>
決定 Wait-Process 要等候指定處理序結束的最長等待時間,以秒為單位。如果這段時間間隔逾時,命令會顯示非終止錯誤,列出仍然在執行的處理序,並且結束等待。
必要? |
false |
位置? |
2 |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
<CommonParameters>
這個 Cmdlet 支援一般參數:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。如需詳細資訊,請參閱 about_Commonparameters.
輸入和輸出
輸入型別是可經由管道輸出至 Cmdlet 的物件型別。傳回型別則是 Cmdlet 所傳回的物件型別。
輸入 |
System.Diagnostics.Process 您可以經由管道將處理序物件輸出至 Wait-Process。 |
輸出 |
無 這個 Cmdlet 不會產生任何輸出。 |
附註
此 Cmdlet 使用 System.Diagnostics.Process 類別的 WaitForExit 方法,如需這個方法的詳細資訊,請參閱 Microsoft .NET Framework SDK。
範例 1
C:\PS>$nid = (get-process notepad).id
C:\PS> stop-process -id $nid
C:\PS> wait-process -id $nid
描述
-----------
這些命令會停止「記事本」處理序,然後等候處理序停止,再進行下一個命令。
第一個命令使用 Get-Process Cmdlet 取得「記事本」處理序的 ID,然後將其儲存到 $nid 變數。
第二個命令會使用 Stop-Process Cmdlet 停止儲存於 $nid 之 ID 的處理序。
第三個命令使用 Wait-Process Cmdlet 等候「記事本」處理序停止。它會使用 Wait-Process 的 ID 參數識別處理序。
範例 2
C:\PS>$p = get-process notepad
C:\PS> wait-process -id $p.id
C:\PS> wait-process -name notepad
C:\PS> wait-process -inputobject $p
描述
-----------
這些命令顯示指定處理序給 Wait-Process Cmdlet 的三種不同的方法。第一個命令取得「記事本」處理序,並將它儲存在 $p 變數中。
第二個命令會使用 ID 參數,第三個命令會使用 Name 參數,第四個命令則使用 InputObject 參數。
這些命令會產生相同的結果,而且可以交互使用。
範例 3
C:\PS>wait-process -name outlook, winword -timeout 30
描述
-----------
這個命令會等待 30 秒,讓 Outlook 和 Winword 處理序停止。如果這兩個處理序都未停止,此 Cmdlet 會顯示非終止錯誤及命令提示字元。
請參閱
概念
Get-Process
Start-Process
Stop-Process
Wait-Process
Debug-Process