快速业务通道

用vbs删除某些类型文件和磁盘空间报告的脚本

作者 佚名 来源 ASP编程 浏览 发布时间 2013-07-09

OptionExplicit
dimServerPath,onlyone,notfinddel,WorkPath,arrWorwpath,strWorkPath,fso,wsh,WshNetwork,cName,exectime,fnum,donum,totalsize,t1,t2,tm
fnum=0
donum=0
totalsize=0
WorkPath="F:\|D:\|C:\Download\"''这里设置需要扫描的路径(绝对路径),使用“|”来分隔多个路径
serverpath="\\server\log$\"''在这里设置服务器上的共享文件夹(可写共享),用来存放删除日志
onlyone="是"''设置是否只扫描一次,如果想每次运行都扫描,请改为“否”。
notfinddel="是"''如果本次运行没有找到任何要删除的内容,就删除日志文件,(你想每次都保留日志的话,请改为“否”)

IfRight(serverpath,1)<>"\"Thenserverpath=serverpath&"\"
arrWorwpath=Split(WorkPath,"|")
t1=timer()
SetWSH=WScript.CreateObject("WScript.Shell")
wsh.run"regsvr32/sscrrun.dll",0,true
Setfso=CreateObject("Scripting.FileSystemObject")
SetWshNetwork=WScript.CreateObject("WScript.Network")
cName=WshNetwork.ComputerName
exectime=Now()
Dimdicdrv,logfile,logfilepath,Objdrv,drvTotalSize,drvFreeSpace
logfilepath=Replace(ServerPath&cName&".txt",":","-")
IfNotfso.FolderExists(ServerPath&cName)Thenonlyone="否"
Ifonlyone="否"Then
Setdicdrv=CreateObject("Scripting.Dictionary")
Setlogfile=fso.OpenTextFile(logfilepath,8,True)
logfile.WriteBlankLines(1)
logfile.WriteLine"#####################################################"
logfile.WriteLine"开始扫描--"&Now()
logfile.WriteBlankLines(1)
ForEachstrWorkPathInarrWorwpath
IfRight(strWorkPath,1)<>"\"ThenstrWorkPath=strWorkPath&"\"
scan(strWorkPath)
IfNotdicdrv.Exists(UCase(Left(strWorkPath,1))&"t")Then
SetObjdrv=fso.GetDrive(fso.GetDriveName(Left(strWorkPath,2)))
dicdrv.addUCase(Left(strWorkPath,1))&"t",FormatNumber(Objdrv.TotalSize/1048576,0)
dicdrv.addUCase(Left(strWorkPath,1))&"f",FormatNumber(Objdrv.FreeSpace/1048576,0)
EndIf
Next
t2=timer()
tm=cstr(int(((t2-t1)*10000)+0.5)/10)
logfile.WriteBlankLines(1)
logfile.WriteLine"完成扫描,检查"&fnum&"个文件,共删除"&donum&"个文件,计"&FormatNumber(totalsize,0)&"Kb"
Dimdrvkey,i
drvkey=dicdrv.Keys
Fori=0Todicdrv.Count-1Step2
logfile.WriteLineLeft(drvkey(i),1)&"盘:总计磁盘空间"&dicdrv.Item(drvkey(i))&"M,剩余磁盘空间"&dicdrv.Item(drvkey(i+1))&"M"
Next
logfile.WriteLine"耗时"&tm&"毫秒,"&Now()
logfile.WriteLine"#####################################################"
logfile.WriteBlankLines(1)
logfile.close
Ifnotfinddel="是"Then
Ifdonum=0Thenfso.DeleteFilelogfilepath,True
EndIf
IfNotfso.FolderExists(ServerPath&cName)Thenfso.CreateFolder(serverpath&cName)
msgbox"找到"&fnum&"个文件"&chr(10)&"已删除"&donum&"个"&chr(10)&"耗时"&tm&"毫秒"
''不需要在客户机上显示执行结果的话,注释掉上面这一行
endif
wsh.run"regsvr32/u/sscrrun.dll",0,true
SetWshNetwork=Nothing
Setwsh=NoThing
SetFSO=NoThing
WScript.quit

Subscan(strfolder_)
Dimfolder_,files,file,ext,subfolders,subfolder
''onerrorresumenext
Setfolder_=fso.getfolder(strfolder_)
Setfiles=folder_.files
ForEachfileInfiles
fnum=fnum+1
ext=fso.GetExtensionName(file)
ext=lcase(ext)
SelectCaseext
Case"rm","rmvb","mpg","wmv","mpeg","3gp","mp4"''这里是你要删除的文件类型,当然也可以是如"td","pdown"等^^文件
doit(file)
EndSelec

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号