2009-11-09 196 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

相关问题