- 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
用vbs删除某些类型文件和磁盘空间报告的脚本
2020-07-19 11:07VBS代码网 VBS
为了防止大家误删文件,我贴上来的脚本把删除屏蔽掉了,如果你确定需要删除,把脚本的倒数第9行,最前面的单引号去掉就可以了。
延伸 · 阅读
- 2022-03-11Python全栈之文件函数和函数参数
- 2022-03-09linux 打包当前文件夹下所有文件的方法
- 2022-03-09Linux删除目录下的文件的10种方法小结
- 2022-03-08SQL删除重复的电子邮箱力扣题目解答流程
- 2022-03-08详解Spring boot操作文件的多种方式
- 2022-03-08Java实现将文件或者文件夹压缩成zip的详细代码
精彩推荐
- VBS
VBS教程:正则表达式简介 -建立正则表达式
建立正则表达式 构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与操作符将小的表达式结合在一起来创建更大的表达式。 可以...
- VBS
VBS教程:对象-Folders 集合
VBS教程:对象-Folders 集合...
- VBS
可以定时自动关机的vbs脚本
这篇文章主要分享一段可以定时自动关机的vbs脚本代码,有需要的童鞋可以学习下...
- VBS
VBS教程:属性-VolumeName 属性
VBS教程:属性-VolumeName 属性...
- VBS
vbs base64 解密脚本代码
解密base64的vbs小函数,支持英文与数字不支持中文。...
- VBS
脚本 MsAgent组件 微软精灵 揪出系统自带的宠物
你知道系统里有一个隐藏的宠物吗? 将以下代码保存为后缀为.vbs的文件,再双击运行,看看出来什么?一个可爱的魔法老人!还会说话、移动、吹喇叭…...
- VBS
提供个可以显示农历的VBS代码
本文主要分享一段可以显示农历的VBS代码,具有一定的参考价值,有需要的朋友可以了解一下...
- VBS
VBS教程:属性-AvailableSpace 属性
VBS教程:属性-AvailableSpace 属性 ...