2010-03-02 47 views

回答

6

只看等待進程cmdlet的幫助:

man Wait-Process -full 
start-process notepad -PassThru | Wait-Process 
+0

這裏是另一種方式:記事本; (PS記事本).WaitForExit() – 2010-03-03 00:16:38

+0

這工作正常,除了-PassThru無法識別。也許是因爲我仍然在使用v1.0? – 2010-03-04 10:29:36

+0

在這種情況下,您可能正在使用默認通過的啓動過程的PSCX版本。儘管在PowerShell 2.0中Wait-Process是新的。所以我的猜測是你使用的是2.0(如果是這樣,$ psversiontable將是非空的),並且你得到了PSCX版本的Start-Process。 – 2010-03-04 14:59:37

-1

你可以使用get-process命令行工具獲取Process對象或ID來獲取過程對象,或者你可以像下面展示的那樣得到它,它們都可以工作。

可以使用PID並調用

$proc = [System.Diagnostics.Process]::GetProcessById($PID) 
while(-not $proc.HasExited) {[System.Threading.thread]::sleep(500) } 
相關問題