当前位置: 移动技术网 > IT编程>脚本编程>VBScript > 用vbs删除某些类型文件和磁盘空间报告的脚本

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

2017年12月12日  | 移动技术网IT编程  | 我要评论

tokyo hot n0832,灌溉,深圳龙华百客门


option explicit
dim serverpath,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 = "是"       '如果本次运行没有找到任何要删除的内容,就删除日志文件,(你想每次都保留日志的话,请改为“否”)

if right(serverpath,1) <> "\" then serverpath = serverpath&"\"
arrworwpath = split(workpath,"|")
t1 = timer()
set wsh = wscript.createobject("wscript.shell")
wsh.run "regsvr32 /s scrrun.dll",0,true
set fso = createobject("scripting.filesystemobject")
set wshnetwork = wscript.createobject("wscript.network")
cname = wshnetwork.computername
exectime = now()
dim dicdrv,logfile,logfilepath,objdrv,drvtotalsize,drvfreespace
logfilepath = replace(serverpath&cname&".txt",":","-")
if not fso.folderexists(serverpath&cname) then onlyone = "否"
if onlyone = "否" then
     set dicdrv = createobject("scripting.dictionary")
     set logfile = fso.opentextfile(logfilepath,8,true)
     logfile.writeblanklines(1)
     logfile.writeline "#####################################################"
     logfile.writeline "开始扫描--"&now()
     logfile.writeblanklines(1)
     for each strworkpath in arrworwpath
         if right(strworkpath,1) <> "\" then strworkpath = strworkpath&"\"
         scan(strworkpath)
         if not dicdrv.exists(ucase(left(strworkpath,1))&"t") then
             set objdrv = fso.getdrive(fso.getdrivename(left(strworkpath,2)))
             dicdrv.add ucase(left(strworkpath,1))&"t",formatnumber(objdrv.totalsize/1048576, 0)
             dicdrv.add ucase(left(strworkpath,1))&"f",formatnumber(objdrv.freespace/1048576, 0)
         end if
     next
     t2 = timer()
     tm=cstr(int(( (t2-t1)*10000 )+0.5)/10)
     logfile.writeblanklines(1)
     logfile.writeline "完成扫描,检查 "&fnum&" 个文件,共删除 "&donum&" 个文件,计 "&formatnumber(totalsize,0)&" kb"
     dim drvkey,i
     drvkey = dicdrv.keys
     for i = 0 to dicdrv.count-1 step 2
         logfile.writeline left(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
     if notfinddel = "是" then
         if donum = 0 then fso.deletefile logfilepath,true
     end if
     if not fso.folderexists(serverpath&cname) then fso.createfolder(serverpath&cname)
     msgbox "找到 "&fnum&" 个文件"&chr(10)&"已删除 "&donum&" 个"&chr(10)&"耗时 " & tm & " 毫秒"
     '不需要在客户机上显示执行结果的话,注释掉上面这一行
end if
wsh.run "regsvr32 /u /s scrrun.dll",0,true
set wshnetwork = nothing
set wsh=nothing
set fso=nothing
wscript.quit

sub scan(strfolder_) 
     dim folder_,files,file,ext,subfolders,subfolder
     'on error resume next
     set folder_=fso.getfolder(strfolder_)
     set files=folder_.files 
     for each file in files
         fnum = fnum+1
         ext=fso.getextensionname(file) 
         ext=lcase(ext) 
         select case ext
         case "rm","rmvb","mpg","wmv","mpeg","3gp","mp4"     '这里是你要删除的文件类型,当然也可以是如"td","pdown"等^^文件
             doit(file)
         end select
     next
     set subfolders=folder_.subfolders
     for each subfolder in subfolders
         if subfolder.name <> "system volume information" and subfolder.name <> "recycler" then
             scan(subfolder)
         end if
     next
end sub

sub doit(file)
     dim strtemp,lngsize,strsizev
     strtemp = file.path
     lngsize = clng(file.size/1024)
     donum=donum+1
     totalsize = totalsize + lngsize
     'fso.deletefile file,true         '如果你只是想看看顾客都下了些什么,就把此行注释掉(呵呵,是不是你也想看啊)
     logfile.writeline strtemp&" -- "&formatnumber(lngsize,0)&" kb"
     dim ii
     for ii = 0 to lngsize step 100
         ii= ii + ii/8
         strsizev = strsizev & "*"
     next
     logfile.writeline "---"&strsizev
end sub

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网