我有一个用于 Avaya CMS 的 VBScript,它每 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
PS - 我在文件的开头遗漏了一些我认为不相关的参数,如果有人认为它们是我将添加它们。