我有一個Powershell腳本,我正在調用一個名爲generate_html的函數。Powershell:不要等待函數返回
有沒有一種方法可以在繼續進行下一個函數調用之前調用該函數,而不是等待其返回值?
我不想訴諸分解成多個腳本並同時運行這些腳本。
function generate_html($var)
{
...
}
generate_html team1
generate_html team2
我有一個Powershell腳本,我正在調用一個名爲generate_html的函數。Powershell:不要等待函數返回
有沒有一種方法可以在繼續進行下一個函數調用之前調用該函數,而不是等待其返回值?
我不想訴諸分解成多個腳本並同時運行這些腳本。
function generate_html($var)
{
...
}
generate_html team1
generate_html team2
可以啓動方法,異步工作,使用Start-Job
cmdlet的。
所以,你會做這樣的事情:
function generate_html($var)
{
#snipped
}
Start-Job -ScriptBlock { generate_html team1 }
如果你需要監視作業是否完成,無論是存儲啓動作業的輸出或使用Get-Job
讓所有作業開始在當前會議,拉出你想要的。 一旦你的,檢查State
屬性來看看它的值是Finished
編輯: 其實,我的錯誤,作業會在另一個線程,所以函數定義或不可用(不是在一個模塊PowerShell知道)在你開始工作的線程中不可用。
嘗試聲明你的函數作爲腳本塊:
$generateHtml = {
param($var)
#snipped
}
Start-Job -ScriptBlock $generateHtml -ArgumentList team1
Start-Job -ScriptBlock $generateHtml -ArgumentList team2
注意'-Keep'標誌上接收在職可以防止結果的自動刪除後接收。 '接收工作名稱MyJob -Keep'如果這對任何讀者都成爲問題。 –
我收到以下錯誤:術語'generate_html'不被識別爲cmdlet,函數,腳本文件或可操作程序的名稱。 – kernelpanic
看看使用工作:'得到的幫助about_jobs' – arco444