手机
当前位置:查字典教程网 >脚本专栏 >vbs >用vbs删除某些类型文件和磁盘空间报告的脚本
用vbs删除某些类型文件和磁盘空间报告的脚本
摘要:OptionExplicitdimServerPath,onlyone,notfinddel,WorkPath,arrWorwpath,st...

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="serverlog$"'在这里设置服务器上的共享文件夹(可写共享),用来存放删除日志

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)

EndSelect

Next

setsubfolders=folder_.subfolders

ForEachsubfolderInsubfolders

Ifsubfolder.name<>"SystemVolumeInformation"Andsubfolder.name<>"RECYCLER"Then

scan(subfolder)

EndIf

Next

EndSub

Subdoit(file)

Dimstrtemp,lngsize,strsizeV

strtemp=file.path

lngsize=clng(file.size/1024)

donum=donum+1

totalsize=totalsize+lngsize

'fso.DeleteFilefile,True'如果你只是想看看顾客都下了些什么,就把此行注释掉(呵呵,是不是你也想看啊)

logfile.WriteLinestrtemp&"--"&FormatNumber(lngsize,0)&"Kb"

dimii

forii=0tolngsizestep100

ii=ii+ii/8

strsizeV=strsizeV&"*"

next

logfile.WriteLine"---"&strsizeV

endSub

【用vbs删除某些类型文件和磁盘空间报告的脚本】相关文章:

用vbs实现获取电脑硬件信息的脚本_最新版第1/4页

用vbscript实现隐藏任务栏图标的脚本

VBS取QQ或TM自动登录代码并防止关闭的脚本

用vbs分割与合并文本文件的代码

用vbs实现随机读取文件的一行内容的脚本

用vbs实现删除名称中有撇号的文件夹

vbs实现的定时关机、重启的脚本和程序

用vbs实现选择颜色

用vbscript合并多个文本文件的代码

使用VBS访问外部文本文件一些方法和脚本实例代码

精品推荐
分类导航