我有3个独立的Powershell脚本,都分别调用,它们执行非常相似的操作。每个窗口中都设置了一个计时器,以每5分钟检查一次CVS文件,并将结果显示为Windows任务栏中的图标。他们查询不同的CSV文件,但是布局如下:
//setup my variables
$poll_timer = New-Object System.Timers.Timer($poll_interval * 1000 * 60)
$poll_timer.Start()
function check_CSV{
query the CSV
$Icon.Icon = $whichImage
...
}
$poll = {
check_CSV
}
Register-ObjectEvent $poll_timer -EventName Elapsed -Action $poll
一切正常,它们全天运行。但是,它们每周崩溃2到3次,因此轮询停止。我觉得很奇怪的是,这3个崩溃并停止了轮询。如果我运行不同的脚本,Powershell仍然可以工作,但是这三个都被独立调用的脚本会同时崩溃。
我已经将$ ErrorActionPreference =“ silentlycontinue”放在顶部,这似乎没有任何区别。我看不到它们为什么崩溃,只是偶尔在运行CSV检查时挂起。
谢谢。
答案 0 :(得分:0)
最后,我相信这是由于独立的Powershell脚本使用了相同的Timer名称。所以我举个例子:
Register-ObjectEvent $poll_timer_script1 -EventName Elapsed -Action $poll_script1
Register-ObjectEvent $poll_timer_script2 -EventName Elapsed -Action $poll_script2
我不完全理解为什么这样做会有所帮助,因为它们是独立文件中的单独脚本中的独立脚本,但是在几周后,我还没有发生崩溃,现在几乎可以肯定会发生。