用VBS脚本删除指定以外的文件或文件夹
作者 佚名
来源 ASP编程
浏览
发布时间 2013-07-09
OptionExplicit ''''''''''''''''''''''''''''说明'''''''''''''''''''''''' ''网盟-黑火制作,送给需要的朋友。 ''配置文件“Listfile.ini”的格式如下: ''要删除什么(文件|目录)=要执行删除的文件夹=排除1;排除2;排除3............ ''配置文件可以有多行,以便对多个目录进行操作。 ''配置文件里以“/”开头的行为注释行。 ''排除多个内容时,使用分号“;”进行分隔。 ''↓↓↓配置文件例子:↓↓↓ ''/配置文件开始 ''目录=D:\=SystemVolumeInformation;网络游戏;单机游戏;小游戏 ''目录=C:\ProgramFiles=qq;WinRAR ''文件=D:\网络游戏=文件1.exe;文件2.exe ''/配置文件结束 ''''''''''''''''''''''''''说明完'''''''''''''''''''''''' DimFso,Listfile,objListfile Listfile=""''设置配置文件路径,如果配置文件和脚本放在一起,请保持原样 IfListfile=""ThenListfile="Listfile.ini" SetFso=CreateObject("Scripting.FileSystemObject") OnErrorResumeNext SetobjListfile=Fso.OpenTextFile(Listfile,1) IfErrThen err.Clear Msgbox"没有找到配置文件"&Listfile,16,"错误" WScript.quit EndIf OnErrorGoTo0 Dimflnum,fdnum,t1,t2,tm flnum=0 fdnum=0 t1=timer() DimMyline,LineArr,ListArr DoWhileobjListfile.AtEndOfStream<>True Myline=LCase(Replace(objListfile.ReadLine,"==","=")) IfLeft(Myline,1)="/"Then ''objListfile.SkipLine ElseIfCheckLine(Myline)=2Then LineArr=Split(Myline,"=") ''DoFolder=LineArr(1) ListArr=Split(LineArr(2),";") ''MsgBoxLineArr(0) IfLineArr(0)="目录"ThenDelFolderLineArr(1),ListArr IfLineArr(0)="文件"ThenDelFileLineArr(1),ListArr EndIf Loop t2=timer() tm=cstr(int(((t2-t1)*10000)+0.5)/10) MsgBox"扫描完毕,共删除"&fdnum&"个目录,"&flnum&"个文件。"&vbCrLf&"耗时"&tm&"毫秒",64,"执行完毕" ''不需要显示报告的话,注释掉上面这一行 SetFso=NoThing WScript.quit SubDelFolder(Folder,ListArr) DimobjFolder,subFolders,subFolder SetobjFolder=Fso.Getfolder(Folder) SetsubFolders=objFolder.subFolders ForEachsubFolderInsubFolders IfNotInArray(LIstArr,LCase(subFolder.name))Then OnErrorResumeNext subfolder.Delete(True) IfErrThen err.Clear Msgbox"不能删除目录,请检查"&subFolder,16,"错误" Else fdnum=fdnum+1 EndIf OnErrorGoTo0 EndIf Next EndSub SubDelFile(Folder,ListArr) DimobjFolder,Files,File SetobjFolder=Fso.Getfolder(Folder) SetFiles=objFolder.Files ForEachFileInFiles IfNotInArray(LIstArr,LCase(File.name))Then OnErrorResumeNext File.Delete(True) IfErrThen err.Clear Msgbox"不能删除文件,请检查"&File,16,"错误" Else flnum=flnum+1 EndIf OnErrorGoTo0 EndIf Next EndSub FunctionCheckLine(strLine) DimLineRegExp,Matches SetLineRegExp=NewRegExp LineRegExp.Pattern=".=." LineRegExp.Global=True SetMatches=LineRegExp.Execute(strLine) CheckLine=Matches.count EndFunction FunctionInArray(Myarray,StrIn) DimStrTemp InArray=True ForEachStrTempInMyarray IfStrIn=StrTempThen ExitFunction ExitFor EndIf Next InArray=False EndFunction |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: vbs病毒制作之一复制自身的vbs脚本下一篇: 使用vbs下载文件的代码加强版
关于用VBS脚本删除指定以外的文件或文件夹的所有评论