Vbscript VBS需要非常长的时间才能删除

Vbscript VBS需要非常长的时间才能删除,vbscript,scripting,Vbscript,Scripting,我们有一个vbs脚本,它在夜间运行,删除旧备份,然后为夜间创建新备份。在我们的一些地方,删除部分花费了非常长的时间,我们遇到了问题 我在一家餐厅的IT部门工作,这段代码是由我们的软件供应商编写的,他根本帮不上忙。这花费的时间太长,导致商店不能按时营业 以下是使用的代码: If FSO_FileExists(sDest & "\" & sZip) Then FSO_DeleteFile(sDest & "\" & sZip) End If

我们有一个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
日志显示:

2014年2月26日04:22:17.825 FSO_文件存在:True D:\backup\Logs.zip

2014年2月26日04:22:17.886 FSO_删除文件:D:\backup\Logs.zip

2014年2月26日04:56:20.544 WSHShell_Run:'C:\Zip.exe-D:\backup\Logs.Zip*'结果0


显然,删除一个文件34分钟是很长的时间。我希望我已经提供了足够的信息。如果我还需要什么,请告诉我。

试着用以下内容替换那些令人费解的内容:

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
脚本应该知道它是否实例化了记录器,因此每次编写日志行时检查它是没有意义的

如果同一脚本在某些计算机上表现不好,则应检查这些计算机的特殊性。 当您在04:22:17.825 FSO_文件存在之前写入日志,并且在04:22:17.886 FSO_删除文件删除之后写入日志时,不应归咎于删除。 如果在ZIP进程04:56:20.544 WSHShell_运行后登录:“C:\ZIP.exe,那么34分钟用于准备和执行ZIP;我会在那里集中精力做进一步的研究