发表您的文章 | 站内搜索 | 软件下载 | 技术论坛 | 网站地图
热门关键字:  radmin  冰点  arp  ghost  P2P终结者

根据磁盘空间删除指定文件夹的VBS脚本

来源:天下网盟 作者:黑火 点击:loading... 时间:2007-07-05 Tag:
以下为引用的内容:
'''''''''''''''''''''''''''''''''说明''''''''''''''''''''''''''''''''''
'网盟-黑火 制作,送给需要的朋友。
'作用:检查磁盘剩余空间,如果低于某个数值就删除一些指定的文件夹。
'注意:并不是指定的文件夹将全部删除,而是顺序删除,如果空间够了就不删后面的。
''''''''''''''''''''''''''''''''说明完'''''''''''''''''''''''''''''''''

Option Explicit
Dim strChkPath,strDelFod,intLessthan,objFso

strDelFod = "c:\netgame\文件夹1|e:\netgame\文件夹1|f:\文件夹1|d:\文件夹2"   '可以删除的文件夹组,用“|”分隔
intLessthan = 20000     '少于多少MB

Set objFso = CreateObject("Scripting.FileSystemObject")
Dim arrDelFod,dicDrvState
Set dicDrvState = CreateObject("Scripting.Dictionary")
arrDelFod = Split(strDelFod,"|",-1)
Dim DelFod,drvPath
For Each DelFod In arrDelFod
   drvPath = UCase(objFso.GetDriveName(DelFod))
   dicDrvState.Item(drvPath) = GetFreeSpace(drvPath)
   If dicDrvState.Item(drvPath) < FormatNumber(intLessthan,0) Then
      If Ask(drvPath&" 盘小于 "&FormatNumber(intLessthan,0)&" MB,是否要删除 “"&DelFod&"”") Then
         On Error Resume Next
         objFso.DeleteFolder DelFod,True
         If Err Then
            err.Clear
            Msgbox "不能删除文件夹,请检查 “"&DelFod&"”"&vbCrLf&"按确定继续",16,"错误"
         End If
         On Error GoTo 0
      End If
   End If
Next  

Dim strMmg,keyDrv,i
strMmg = "完成报告:"&vbCrLf&vbCrLf
keyDrv = dicDrvState.Keys
For i = 0 To dicDrvState.Count -1
strMmg = strMmg & keyDrv(i)&" 盘剩余空间        "&dicDrvState(keyDrv(i))&"        "
If dicDrvState(keyDrv(i)) < FormatNumber(intLessthan) Then strMmg = strMmg & "注意!"
strMmg = strMmg & vbCrLf
Next
MsgBox strMmg,64,"完成报告"
Set dicDrvState = NoThing
Set objFso = NoThing
WScript.quit
      
Function GetFreeSpace(drvPath)
   Dim fso, d
   Set fso = CreateObject("Scripting.FileSystemObject")
   On Error Resume Next
   Set d = fso.GetDrive(fso.GetDriveName(drvPath))
   If Err Then
      err.Clear
      Msgbox "不能找到驱动器 “"&drvPath&"” 按确定继续",16,"错误"
      GetFreeSpace = "Error"
      Exit Function
   End If
   On Error GoTo 0
   GetFreeSpace = FormatNumber(d.FreeSpace/1048576, 0)
   Set fso = Nothing
End Function

Function Ask(strAction)
    Dim intButton
    intButton = MsgBox(strAction,vbQuestion + vbYesNo,"询问")
    Ask = intButton = vbYes
End Function


上一篇:没有了
下一篇:用dos批处理自制网吧公告牌
以下只显示最新 20 条评论 查看所有评论
发表评论
评论内容:不能超过250字,网上网下行为一致,尊重他人就是尊重自己。
用户名:
未注册?
注册