在VBscript中删除文件

在VBscript中删除文件,vbscript,Vbscript,我在不同的文件夹中有一个大约50个文件的列表,我通过将当天的日期添加到文件中来定期备份它们。并非所有文件都同时备份。下面是一个例子: C:\Intel\Logs\AcerDT.pdf.2020-05-05 C:\Intel\Logs\IntelChipset.log.2020-05-05 C:\Intel\Logs\IntelGFX.log C:\Intel\Logs\IntelSSDTDK.log.2020-05-05 C:\Intel\Logs\IntelSSDToolbox.log 我写

我在不同的文件夹中有一个大约50个文件的列表,我通过将当天的日期添加到文件中来定期备份它们。并非所有文件都同时备份。下面是一个例子:

C:\Intel\Logs\AcerDT.pdf.2020-05-05
C:\Intel\Logs\IntelChipset.log.2020-05-05
C:\Intel\Logs\IntelGFX.log
C:\Intel\Logs\IntelSSDTDK.log.2020-05-05
C:\Intel\Logs\IntelSSDToolbox.log
我写了一个VBScript来删除所有有那个日期的文件。如果所有文件的扩展名都是.2020-05-05,效果会很好。问题是,如果列表中的文件不存在,例如,它没有.2020.-05-05,它会向我抛出一条错误消息并退出。我不要这个。我希望脚本检查列表,如果文件存在,则删除它,如果文件不存在,则检查下一个。这可能吗

这是我的密码:

Dim objFSO : Set objFSO = CreateObject("Scripting.FileSystemObject")

arrList = Array(_
   "C:\Intel\Logs\AcerDT.pdf", _
   "C:\Intel\Logs\IntelChipset.log", _
   "C:\Intel\Logs\IntelGFX.log", _
   "C:\Intel\Logs\IntelSSDTDK.log", _
   "C:\Intel\Logs\IntelSSDToolbox.log" _
)

Function CleanUp(arrList, value)
   Dim sFile, myFile
   For each sFile in arrList
      myFile = sFile & "." & value
      If objFSO.FileExists(sFile) Then
         objFSO.DeleteFile(myFile)
      Else
         Wscript.Echo "NO File: " & sFile 
      End if
   Next
End Function

CleanUp arrList, "2020-05-09"
谢谢

谢谢你,库尔·蒂金 正如您所指出的,当我用myFile替换sFile时,它解决了这个问题。真不敢相信我居然没看见

解决方案:

  If objFSO.FileExists(myFile) Then
     objFSO.DeleteFile(myFile)
  Else

它在哪一行出错,错误是什么?它在这一行出错:C:\Intel\Logs\IntelGFX.log导致文件夹中的文件没有.2020-05-05扩展名根据MS文档,DeleteFile方法在遇到第一个错误时停止。我能绕过这个吗?如在。如果文件不存在,它应该检查列表上的下一个文件,而不是退出程序??这可能吗?如果文件不存在,它应该只输出NO file:行,而不是试图删除文件。这可能与使用。作为分隔符,导致FileSystemObject将.log视为扩展名,并忽略其后的任何内容。如果objFSO.FileExistssFile,则此处存在问题。你需要检查myFile而不是sFile的存在性。很好的捕获@Kul Tigin。