Vbscript VB脚本删除子文件夹中的文件

Vbscript VB脚本删除子文件夹中的文件,vbscript,Vbscript,我需要VB脚本从子文件夹中删除不必要/不需要的文件(具有不同的扩展名,但文件的姓氏很常见,如ABC123DEF.pdf、ABC456DEF.pdf、QWE145_source.xml、QWE784_source.xml等) 有人能帮忙吗 提前感谢从遍历文件夹树的框架脚本开始: Step00.vbs: Option Explicit Dim goFS : Set goFS = CreateObject("Scripting.FileSystemObject") WScript.Quit Ma

我需要VB脚本从子文件夹中删除不必要/不需要的文件(具有不同的扩展名,但文件的姓氏很常见,如ABC123DEF.pdf、ABC456DEF.pdf、QWE145_source.xml、QWE784_source.xml等)

有人能帮忙吗


提前感谢

从遍历文件夹树的框架脚本开始:

Step00.vbs:

Option Explicit

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

WScript.Quit Main()

Function Main()
  Dim sDir : sDir = "..\test"
  Dim oWorker : Set oWorker = New cWorker
  Main = traverseDir(goFS.GetFolder(sDir), oWorker)
End Function

Class cWorker
  Public Sub processFile(oFile)
    WScript.Echo oFile.Path
  End Sub
End Class

Function traverseDir(oDir, oWorker)
  traverseDir = 0
  Dim oF
  For Each oF In oDir.Files
      oWorker.processFile oF
  Next
  For Each oF In oDir.SubFolders
      traverseDir = traverseDir(oF, oWorker)
  Next
End Function
输出:

cscript step00.vbs
E:\trials\SoTrials\answers\13415663\test\13415663.notes
E:\trials\SoTrials\answers\13415663\test\13415663.kpf
E:\trials\SoTrials\answers\13415663\test\13415663-UE15.prj
E:\trials\SoTrials\answers\13415663\test\vbs\step00.vbs
Main函数将文件夹和辅助对象传递给traverseDir函数 并返回要传递给调用方(OS)的退出代码。穿越者 函数将目录中的每个文件发送到工作者的processFile子函数,调用 为每个子文件夹递归地返回自身,并向 调用者(自身的主/上一个实例)。(琐碎的)工人只是附和 文件的路径

步骤01.vbs使用具有硬编码条件的工人来确定 要删除的文件:

Class cWorker
  Public Sub processFile(oFile)
    If "notes" = goFS.GetExtensionName(oFile.Name) Then
       WScript.Echo "will delete", oFile.Path
       oFile.Delete
    End If
  End Sub
End Class
输出:

cscript step01.vbs
will delete E:\trials\SoTrials\answers\13415663\test\13415663.notes
基于此概念验证脚本,您可以增强traverseDir功能 (不可访问文件夹的错误处理…)和/或cWorker类(更多 复杂条件、错误处理、日志记录等)

更新:


请参阅以获取有关骨架进一步增强的想法。

我们不会完成您的工作。你试过什么?有什么问题吗?哪里让我们看看你的努力。