创建每5分钟执行一次SQL命令的PowerShell作业

时间:2009-11-09 23:10:41

标签: powershell timer jobs

我正在创建一个PowerShell脚本,我将使用Start-Job执行该脚本。作业应该在后台持续运行,直到我告诉它停止使用Stop-Job。它应该在具有指定持续时间的计时器上执行SQL命令,并将结果输出到作业管道,以便我可以使用Receive-Job检索它们。

现在作业运行正常,但我没有设置在初始SQL命令执行后继续运行(我没有实现计时器)。

在PowerShell作业中实现计时器的正确方法是什么,以便作业连续运行?

1 个答案:

答案 0 :(得分: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) }
}