VBS需要很长时间才能删除

时间:2014-02-26 19:11:52

标签: vbscript scripting

我们有一个vbs脚本,在我们的隔夜进程中运行,删除旧备份,然后创建新备份。在我们的一些地方,我们遇到了删除部分的问题需要很长时间才能删除。

我在一家餐厅的IT部门工作,这段代码是由我们的软件提供商编写的,他们绝对没有帮助。这花费的时间太长,导致商店无法按时营业。

以下是使用的代码:

   If FSO_FileExists(sDest & "\" & sZip) Then
      FSO_DeleteFile(sDest & "\" & sZip)
   End If

Function FSO_DeleteFile(sFile)
   Dim oErr: oErr = Err: Err.Clear
   If Not bDebugScript Then On Error Resume Next
   Dim fsName: fsName = "FSO_DeleteFile"
   Dim oFSO: Set oFSO = CreateObject("Scripting.FileSystemObject")
   oFSO.DeleteFile sFile, True
   FSO_DeleteFile = (Err.Number = 0)
   If IsObject(oLog) Then oLog.WriteLog fsName & ": " & sFile
   If Err.Number <> 0 And IsObject(oLog) Then oLog.WriteLog "ERROR: " & fsName & ": (" &    Err.Number & ") " & Err.Description
   Err = oErr
End Function

Function FSO_FileExists(sFile)
   Dim oErr: oErr = Err: Err.Clear
   If Not bDebugScript Then On Error Resume Next
   Dim fsName: fsName = "FSO_FileExists"
   Dim oFSO: Set oFSO = CreateObject("Scripting.FileSystemObject")
   Dim bExists
   bExists = oFSO.FileExists(sFile)
   FSO_FileExists = bExists
   If IsObject(oLog) Then oLog.WriteLog fsName & ": (" & CStr(bExists) & ") " & sFile
   If Err.Number <> 0 And IsObject(oLog) Then oLog.WriteLog "ERROR: " & fsName & ": (" & Err.Number & ") " & Err.Description
   Err = oErr
End Function

日志显示:

02/26/2014 04:22:17.825 FSO_FileExists :(正确)D:\ backup \ Logs.zip

02/26/2014 04:22:17.886 FSO_DeleteFile:D:\ backup \ Logs.zip

02/26/2014 04:56:20.544 WSHShell_Run:'“C:\ Zip.exe”-D“D:\ backup \ Logs.zip”*'结果(0)

显然,删除文件需要34分钟。我希望我提供了足够的信息。如果我需要什么,请告诉我。

2 个答案:

答案 0 :(得分:0)

尝试用这个代替那个回旋:

filename = oFSO.BuildPath(sDest, sZip)
If oFSO.FileExists(filename) Then
  oLog.Write "Deleteing file " & filename
  On Error Resume Next
  oFSO.DeleteFile filename
  If Err Then oLog.Write "ERROR: " & filename & ": (" & Err.Number & ") " _
    & Err.Description
  On Error Goto 0
Else
  oLog.Write "File " & filename & " not found"
End If

脚本应该知道它是否实例化了一个记录器,所以每次写日志行时检查是没有意义的。

答案 1 :(得分:0)

  1. 如果同一个脚本在某些计算机上表现不佳,则应检查这些计算机的特性。
  2. 当您写入日志(04:22:17.825 FSO_FileExists)和之后(04:22:17.886 FSO_DeleteFile)删除时,删除不应该受到责备。
  3. 如果你在之后记录ZIP进程(04:56:20.544 WSHShell_Run:'“C:\ Zip.exe”),那么34分钟就用来准备并做拉链;我会集中进一步研究