http://download1.csdn.net/down3/20070525/25110904976.vbs
文件碎片化是造成系统性能下降的一个主要因素之一,虽然Windows早就提供了整理工具,但其极低的效率和不得不等待其完成使得很多人从未做过这个可以显著提供性能的基本维护,Vista将这个过程放在自动维护里,这样在中午吃饭或者其它空闲时间就可以自动执行清理工作,可以大幅改善桌面用户长期使用中逐步变差的体验。
XP下其实也可以自动进行,有两种方式:
1)用"任务调度"创建定时任务,命令行敲入: sysdir/defrag.exe x: /f,这里的sysdir指Windows目录,x指要整理的磁盘。有点麻烦?用方法2
2)用附件的脚本,可以自动检查系统中的分区,对每个分区分别安排一个每月进行一次的清理工作。我设置的默认时间是午饭时间11:55,如果不合适,可以自己改变一下。
用法:保存到本地,双击或者在命令行下键入:autodefrag.vbs,即可。
执行完后在命令行下用at命令可以看到添加的任务。用at /delete 可以删除。
或者复制下面内容并保存为xxx.vbs
'
' Add disk defragment to schedule job list.
' The defragment scedule is set to 1st,2nd,3rd... day of every month for each disk particiption.
'
' Author: Lenovo lihw. 20070517
Dim objFSO, colDrives , errJobCreated, iDay
'start time. Default to 11:55am. you can modify it.
'Time format is UTC time. i.e '********hhmmss.000000+zoneadjust'
Const schetime = "********115500.000000+480"
'create schedule job object
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!//" & strComputer & "/root/cimv2")
Set objNewJob = objWMIService.Get("Win32_ScheduledJob")
'Loop create scheduled job
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set colDrives = objFSO.Drives
'day mask. it is defined as bit mask
iDay = 1
For Each objDrive in colDrives 'loop for each particition
If objDrive.DriveType = 2 Then ' type 2 is hard disk
errJobCreated = objNewJob.Create _
("defrag.exe " & objDrive.DriveLetter & ": /f", schetime , _
True , ,iDay , , JobID)
If errJobCreated <> 0 Then
'Wscript.Echo JobID
'Else
Wscript.Echo errJobCreated
End if
iDay = iDay * 2 ' iday << 1
End if
Next