MyDefrag is a disk defragmenter and optimizer, a maintenance utility to make your harddisk faster. Fast, low overhead, with many optimization strategies, can handle floppies, USB disks, memory sticks, and anything else that looks like a disk to Windows. Included are a set of easy to use scripts for endusers, a scripting engine for demanding users, a screensaver, and a combined Windows plus commandline version that can be scheduled by the Windows task scheduler or for use from administrator scripts.
MyDefrag is extremely solid because it is based on the standard defragmentation API by Microsoft. Most defragmenters are based on this API, including the free defragmenter that comes with Windows and many commercial defragmenters. Basically all MyDefrag does is send “move this file to that location” commands to the API. The API is part of the operating system and can safely move almost any file on the disk, without risk and while the computer is in full use.
- Added the MoveUpToZone fileaction.
- Changed the NTFS scanner so it will now always use 512 bytes for the USA fixup. Previously it used the number of bytes per sector, which is 512 bytes for most harddisks, but it appears that NTFS also uses 512 for ultra-big harddisks, even though they have a different number of bytes per sector.
- Added some code to SelectNtfsSystemFiles() to protect the program against infinite loops in data on the disk.
- Fixed a bug that caused MoveToEndOfDisk() not to display a progress percentage.
- Changed the ExcludeVolumes setting. It can now be used multiple times in a script.
- Documented the “/TASKS” installer commandline option.
- Added the SkipBlock option to all the SortBy fileactions.
- Added the ExitIfTimeout setting.
- Added the bouncing box display mode to the screensaver.
- Added a special exclusion for the “$dcsys$” file used by DiskCryptor so MyDefrag will never move this file. The exclusion is not really needed because the file is protected by the DiskCryptor driver, but I have added it anyway, just in case.
- Changed the way how variables can be defined and changed. Previously the syntax was “NAME=VALUE”, but this caused undesirable error messages in case of a syntax error. Variables can now be defined and changed with the SetVariable command.
- Several improvements in error reporting. One of these is that the regular MyDefrag version will no longer ask the user to post the debug logfile on the forum.
- The ImportListFromProgramHints fileboolean will now ignore hint files that are older than 30 days.
- Changed the contents of the “date” variable from “2010/12/31″ into “2010-12-31″. The old contents could not be used for filenames.
- The installer will now create a daily scheduled task by default. Previously the default was not to create the task.
- Added the “DataDiskDaily.MyD”, “DataDiskWeekly.MyD”, “DataDiskMonhtly.MyD”, “Daily.MyD”, and “Monthly.MyD” scripts. Renamed the “OptimizeDaily.MyD” script into “SystemDiskDaily.MyD”, “OptimizeWeekly.MyD” into “SystemDiskWeekly.MyD”, and “OptimizeMonthly.MyD” into “SystemDiskMonthly.MyD”.
- The installer now creates two scheduled tasks, a daily task and a monthly task.
- Fixed a problem in the ZoneSize and ZoneBegin script variables.
Windows 7, 2008, Vista, 2003, 2000, and for X64
Download MyDefrag 4.3.0

Disk fragmentation leads to system slowdowns, PC crashes, slow startups and shutdowns. 