我有一个VBScript,在Avaya CMS中用于每3秒生成一个CSV。然后,节点服务器会在每次更改时读取此CSV。
每隔一段时间它就会抛出一个错误(错误52)然后需要有人在提示符上手动单击“确定”然后继续。
我没有编写初始脚本,但我一直在尝试修复它,因此它不会抛出此错误。
据我所知,当节点服务器尝试读取文件时脚本尝试写入文件时会导致此问题。
到目前为止,我试图通过使文件只读来修复此问题,然后在脚本中使其可写,写入并使其再次读取。
我认为这已解决了这个问题,但我又收到了错误52,现在我不确定了。
有没有人知道是否有办法让VB / Avaya忽略错误?我在考虑将On Error Resume Next
放在写入文件的行之前?
我知道忽略错误并不是一种好的做法,但在这种情况下,如果它确实忽略了它,它只是意味着文件不会在这个循环上更新,但是3秒后它会再次循环,所以应该没问题。
脚本:
On Error Resume Next
cvsSrv.Reports.ACD = 1
Set Info = cvsSrv.Reports.Reports("Real-Time\Designer\Skill Status")
If Info Is Nothing Then
Else
b = cvsSrv.Reports.CreateReport(Info,Rep)
If b Then
Rep.RefreshInterval = 3
Rep.SetProperty "Split/Skill","5"
Set WshShell = CreateObject("WScript.Shell")
theHTMLLocation = "C:\wamp\www\wallboards\agent_status.csv"
theSleepFile = "C:\wamp\www\wallboards\sleep.vbs"
theTemplateLocation = ""
Set fso = CreateObject("Scripting.FileSystemObject")
Set gfile = fso.GetFile("C:\wamp\www\wallboards\agent_status.csv")
Do While Rep.Window.Caption <> ""
gfile.Attributes = 0
d = Rep.ExportData("C:\wamp\www\wallboards\agent_status.csv", 44, 0, False, True, True)
gfile.Attributes = 1
WshShell.Run "wscript.exe """ & theSleepFile & """", , True
Loop
If Not cvsSrv.Interactive Then cvsSrv.ActiveTasks.Remove Rep.TaskID
Set Rep = Nothing
End If
End If
Set Info = Nothing
P.S - 我在文件的那个开头省略了一些我认为不相关的参数,如果有人认为他们是我会添加它们。