4
我正在使用Powershell 1腳本啓動Python程序,然後我想暫停Powershell直到Python完成其工作。 (我對Python文件擁有完全的所有權。)最好的辦法是什麼?如何暫停Powershell腳本,直到發生某些外部事件?
我正在使用Powershell 1腳本啓動Python程序,然後我想暫停Powershell直到Python完成其工作。 (我對Python文件擁有完全的所有權。)最好的辦法是什麼?如何暫停Powershell腳本,直到發生某些外部事件?
只看等待進程cmdlet的幫助:
man Wait-Process -full
start-process notepad -PassThru | Wait-Process
你可以使用get-process命令行工具獲取Process對象或ID來獲取過程對象,或者你可以像下面展示的那樣得到它,它們都可以工作。
可以使用PID並調用
$proc = [System.Diagnostics.Process]::GetProcessById($PID)
while(-not $proc.HasExited) {[System.Threading.thread]::sleep(500) }
這裏是另一種方式:記事本; (PS記事本).WaitForExit() – 2010-03-03 00:16:38
這工作正常,除了-PassThru無法識別。也許是因爲我仍然在使用v1.0? – 2010-03-04 10:29:36
在這種情況下,您可能正在使用默認通過的啓動過程的PSCX版本。儘管在PowerShell 2.0中Wait-Process是新的。所以我的猜測是你使用的是2.0(如果是這樣,$ psversiontable將是非空的),並且你得到了PSCX版本的Start-Process。 – 2010-03-04 14:59:37