- Option Explicit
- ''''''''''''''说明''''''''''''
- '网盟-黑火制作,送给需要的朋友。
- '配置文件“Listfile.ini”的格式如下:
- '要删除什么(文件|目录)=要执行删除的文件夹=排除1;排除2;排除3............
- '配置文件可以有多行,以便对多个目录进行操作。
- '配置文件里以“/”开头的行为注释行。
- '排除多个内容时,使用分号“;”进行分隔。
- '↓↓↓ 配置文件例子:↓↓↓
- '/配置文件开始
- '目录=D:\=System Volume Information;网络游戏;单机游戏;小游戏
- '目录=C:\Program Files=qq;WinRAR
- '文件=D:\网络游戏=文件1.exe;文件2.exe
- '/配置文件结束
- '''''''''''''说明完''''''''''''
- Dim Fso,Listfile,objListfile
- Listfile = "" '设置配置文件路径,如果配置文件和脚本放在一起,请保持原样
- If Listfile = "" Then Listfile = "Listfile.ini"
- Set Fso = CreateObject("Scripting.FileSystemObject")
- On Error Resume Next
- Set objListfile = Fso.OpenTextFile(Listfile,1)
- If Err Then
- err.Clear
- Msgbox "没有找到配置文件 "&Listfile,16,"错误"
- WScript.quit
- End If
- On Error GoTo 0
- Dim flnum,fdnum,t1,t2,tm
- flnum=0
- fdnum=0
- t1 = timer()
- Dim Myline,LineArr,ListArr
- Do While objListfile.AtEndOfStream <> True
- Myline = LCase(Replace(objListfile.ReadLine,"==","="))
- If Left(Myline,1) = "/" Then
- 'objListfile.SkipLine
- ElseIf CheckLine(Myline) = 2 Then
- LineArr = Split(Myline,"=")
- 'DoFolder = LineArr(1)
- ListArr = Split(LineArr(2),";")
- 'MsgBox LineArr(0)
- If LineArr(0) = "目录" Then DelFolder LineArr(1),ListArr
- If LineArr(0) = "文件" Then DelFile LineArr(1),ListArr
- End If
- Loop
- t2 = timer()
- tm=cstr(int(( (t2-t1)*10000 )+0.5)/10)
- MsgBox "扫描完毕,共删除 "&fdnum&" 个目录, "&flnum& "个文件。"& vbCrLf &"耗时 "&tm&" 毫秒",64,"执行完毕"
- '不需要显示报告的话,注释掉上面这一行
- Set Fso=NoThing
- WScript.quit
- Sub DelFolder(Folder,ListArr)
- Dim objFolder,subFolders,subFolder
- Set objFolder=Fso.Getfolder(Folder)
- Set subFolders=objFolder.subFolders
- For Each subFolder In subFolders
- If Not InArray(LIstArr,LCase(subFolder.name)) Then
- On Error Resume Next
- subfolder.Delete(True)
- If Err Then
- err.Clear
- Msgbox "不能删除目录,请检查 "&subFolder,16,"错误"
- Else
- fdnum = fdnum + 1
- End If
- On Error GoTo 0
- End If
- Next
- End Sub
- Sub DelFile(Folder,ListArr)
- Dim objFolder,Files,File
- Set objFolder=Fso.Getfolder(Folder)
- Set Files=objFolder.Files
- For Each File In Files
- If Not InArray(LIstArr,LCase(File.name)) Then
- On Error Resume Next
- File.Delete(True)
- If Err Then
- err.Clear
- Msgbox "不能删除文件,请检查 "&File,16,"错误"
- Else
- flnum = flnum + 1
- End If
- On Error GoTo 0
- End If
- Next
- End Sub
- Function CheckLine(strLine)
- Dim LineRegExp,Matches
- Set LineRegExp = New RegExp
- LineRegExp.Pattern = ".=."
- LineRegExp.Global = True
- Set Matches = LineRegExp.Execute(strLine)
- CheckLine = Matches.count
- End Function
- Function InArray(Myarray,StrIn)
- Dim StrTemp
- InArray = True
- For Each StrTemp In Myarray
- If StrIn = StrTemp Then
- Exit Function
- Exit For
- End If
- Next
- InArray = False
- End Function
用VBS脚本删除指定以外的文件或文件夹
2020-07-19 11:04VBS脚本之家 VBS
好多情况下,我们只想保留某个文件或文件夹但对于大量的文件或文件夹删除起来,比较麻烦,下面这个代码可以解决这个问题,用vbs实现的删除文件夹代码
延伸 · 阅读
- 2022-03-09Linux删除目录下的文件的10种方法小结
- 2022-03-08SQL删除重复的电子邮箱力扣题目解答流程
- 2022-03-08Java实现将文件或者文件夹压缩成zip的详细代码
- 2022-03-08pandas如何删除没有列名的列浅析
- 2022-03-01Linux系统删除文件夹和文件的命令
- 2022-02-28oracle删除超过N天数据脚本的方法
精彩推荐
- VBS
VBS教程:属性-VolumeName 属性
VBS教程:属性-VolumeName 属性...
- VBS
可以定时自动关机的vbs脚本
这篇文章主要分享一段可以定时自动关机的vbs脚本代码,有需要的童鞋可以学习下...
- VBS
vbs base64 解密脚本代码
解密base64的vbs小函数,支持英文与数字不支持中文。...
- VBS
VBS教程:属性-AvailableSpace 属性
VBS教程:属性-AvailableSpace 属性 ...
- VBS
VBS教程:正则表达式简介 -建立正则表达式
建立正则表达式 构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与操作符将小的表达式结合在一起来创建更大的表达式。 可以...
- VBS
脚本 MsAgent组件 微软精灵 揪出系统自带的宠物
你知道系统里有一个隐藏的宠物吗? 将以下代码保存为后缀为.vbs的文件,再双击运行,看看出来什么?一个可爱的魔法老人!还会说话、移动、吹喇叭…...
- VBS
提供个可以显示农历的VBS代码
本文主要分享一段可以显示农历的VBS代码,具有一定的参考价值,有需要的朋友可以了解一下...
- VBS
VBS教程:对象-Folders 集合
VBS教程:对象-Folders 集合...