1

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

在此处输入图像描述

4

0 回答 0