2009-11-09 197 views
0

我正在使用Start-Job創建一個我要執行的PowerShell腳本。直到我告訴它停止使用Stop-Job作業應繼續在後臺運行。它應該在具有指定持續時間的計時器上執行SQL命令並將結果輸出到作業管道,以便我可以使用Receive-Job檢索它們。創建一個每5分鐘執行一次SQL命令的PowerShell作業

現在作業可以正常運行,但是我沒有將它設置爲在初始SQL命令執行後繼續運行(我沒有執行定時器)。

在PowerShell作業中實現計時器的正確方法是什麼,以便作業能夠持續運行?

回答

1

雖然可能不太定時器正因爲如此,我也做過類似的事情只是用一個循環:

while ($true) { 
    "Hello" 
    [System.Threading.Thread]::Sleep(1000) 
} 

您可能需要進一步修改腳本睡覺的時間計算量:

while ($true) { 
    $start = [DateTime]::Now 
    "Hello" 
    $end = [DateTime]::Now 
    #computer difference from initial five minute marker (5*60*1000=300000) 
    $wait = (5*60*1000) - ($end - $start).TotalSeconds 
    if ($wait -gt 0) { [System.Threading.Thread]::Sleep($wait) } 
} 
+0

是的Thread.Sleep在PowerShell中等待最好的方法是什麼? – 2009-11-09 23:26:34

+2

我會使用啓動睡眠1(1秒)。 – 2009-11-10 01:38:02

相關問題