这个脚本实现的功能是这样的:
举例说明:
文件夹a下有三个文件b.f,c.d,e.txt;以及子文件夹下的若干文件
文件夹b下有很多文件;
要求删除文件夹b下所有与文件夹a下的同名文件包括子文件夹里的同名文件(即删除文件夹b下名字为b.f,c.d,e.txt的文件,可能存在也可能不存在);
需要考虑嵌套子文件夹的问题说白了就是我当初拷贝了一些文件过去,现在后悔了想删除!因为这样的文件比较多,我一点点对,有点晕,时间也利用补上!

解决方案 »

  1.   

    我找了一个这个,不过不能获取子文件夹里的文件列表 Dim ofso, File
        Dim PathA, PathB
        Dim FilesInPathA
     
        Set ofso = CreateObject("Scripting.FileSystemObject")
         
        '获得路径A下的文件列表
        Set PathA = ofso.GetFolder("C:\Users\Administrator\Desktop\材质包\meshes")
        For Each File In PathA.Files
            FilesInPathA = FilesInPathA & "|" & File.Name
        Next
         
        '获得路径B下的文件列表
        Set PathB = ofso.GetFolder("C:\Users\Administrator\Desktop\meshes")
        For Each File In PathB.Files
            If InStr(FilesInPathA, File.Name) Then '判断此文件在路径A下是否存在
                File.Delete True '如果存在则删除
            End If
        Next
         
        Set fso = Nothing
      

  2.   

    写好了,代码如下:Set fso = createobject("scripting.filesystemobject")
    curdir = fso.getparentfoldername(wscript.scriptfullname)
    dirA = fso.buildpath(curdir,"a")
    dirB = fso.buildpath(curdir,"b")Set dict = createobject("scripting.dictionary")
    addfilenames fso.getfolder(dirA)
    removefiles fso.getfolder(dirB)
    msgbox "Done!"Sub AddFileNames(ByVal objFolder)
    For Each objfile In objfolder.files
    dict.item(objfile.name) = null
    Next
    For Each objsubfolder In objfolder.subfolders
    addfilenames objsubfolder
    Next
    End SubSub RemoveFiles(ByVal objFolder)
    For Each objfile In objfolder.files
    If dict.exists(objfile.name) Then
    fso.deletefile objfile.path,True
    End If
    Next
    For Each objsubfolder In objfolder.subfolders
    removefiles objsubfolder
    Next
    End Sub下载地址:
    链接:https://pan.baidu.com/s/1nYH7LPdlcPSvaIT8BoP4zw 
    提取码:43tr