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(ServerPathcName".txt",":","-") If Not fso.FolderExists(ServerPathcName) 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(ServerPathcName) Then fso.CreateFolder(serverpathcName) 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