Board logo

标题: [原创]清除垃圾的VBS文件 [打印本页]

作者: correy     时间: 2007-10-1 08:28    标题: [原创]清除垃圾的VBS文件

rem made by correy
rem made at 2007.9.22
rem it can be delete you computer's the follow things(except cd,dvd)
rem it can be delete empty file and folder
rem it can be delete .tmp ._mp .log .gid .chk .old file
rem it can be delete temp,recent,cookis,recycled,prefetch,and "Temporary Internet Files" folder.
rem i am thinking how to delete the same size and same name's file and folder

On Error GoTo 0
Set fso = CreateObject("Scripting"&"."&"FileSystem"&"Object")

for n = 1 to 3
For Each d in fso.Drives
        if d.drivetype=4 then
           Exit For
           else
           scan(d)
         end if        
next
next

sub scan(folder)
on error resume next
set folder=fso.getfolder(folder)
for each file in folder.files
   if file.size=0 then
      file.delete(true)
   end if

ext=fso.GetExtensionName(file)           
ext=lcase(ext)                     
    if ext="tmp" or ext="_mp" or ext="log" or ext="gid" or ext="chk" or ext="old"  then  ''30
       file.delete(true)      
    end if
next
for each subfolder in folder.subfolders   

    rem instrRev() can't be used,i want to find "\".
    if left(subfolder.path,4)="temp" or left(subfolder.path,8)="recycled" then
          subfolder.delete(true)
       elseif left(subfolder.path,6)="recent" or left(subfolder.path,7)="cookis" then
          subfolder.delete(true) rem 40
       elseif left(subfolder.path,24)="Temporary Internet Files" or left(subfolder.path,8)="prefetch" then
          subfolder.delete(true)
    end if      

    if subfolder.size=0 then subfolder.delete(true)  
    scan(subfolder)
next
end sub
作者: wudixin96     时间: 2007-10-1 08:34
建议多使用GetSpecialFolder方法
作者: slore     时间: 2007-10-1 11:04
left(subfolder.path,6)="recent" or left(subfolder.path,7)="cookis"
这种判定方式……汗一个……不知道有没有lcase
作者: Nickey     时间: 2007-10-1 18:48
晕死
好像某些系统文件都被删了
提示无法识别请插入安装盘
咋办?
作者: yjq635     时间: 2007-10-1 22:57
我发一个VBS版的,,
dim fs,f,fc
Const temporaryfolder=2
On Error Resume Next
Set fs=CreateObject ("Scripting.filesystemObject")
Set fs=fs.getspecialfolder(2)
Set fc=fs.subfolders
For each f in fc
        f.delete true
        Next
        Set fc=fs.files
        For each f in fc
                f.delete true
                Next

作者: icyheart     时间: 2007-10-2 12:27
学习啦拿来修改修改呵呵
作者: huangxiaohao     时间: 2007-10-6 10:22
正在学习,相信对我会有帮助的