Defrag Hard Drives only when they are fragmented

0
257

It does not make sense to start a hard drive defragmentation if the drive is not really fragmented. If a defragmentation is scheduled, it will be executed regardless of state of the drive.

If a drive has no fragmentation whatsoever, or only slight fragmentation that does not impact performance by a lot, then it does not really make sense to run a defrag on it. The defrag tool that ships with Windows can be used to check the fragmentation level of a hard drive and we are going to use this to create a script that runs defrag only when the hard drive is fragmented.

You can check the fragmentation level of a hard drive using the command line and the command defrag.exe c: /a. The tool then checks the specified hard drive and reports back its fragmentation level.

That’s useful to determine a drive’s fragmentation status, but won’t help you right away as you need to combine the information somehow with the running of the tool so that defrag.exe is only run when necessary.

defrag-check

A script by Ramesh Srinivasan uses the report to determine if a hard drive should be defragmented. The Visual Basic script can be added to the Windows scheduler or simply executed during system startup, shutdown, or by double-clicking the file at any time while the system is running.

I copied the file to a text file and zipped it already. You can download the script here or visit the website above where the script is displayed in text form.

The code will enumerate all fixed drives connected to the system. To add the script to the Windows Task Scheduler, download it or create it from scratch if you want, and do the following afterwards.

  1. Tap on the Windows-key, type Task Scheduler and select the entry that comes up. This should open the Windows Task Scheduler on your system.
  2. Select Create Task from the actions listing.
  3. Add a name to it.
  4. Switch to triggers, click on new, and define when you want the script to run. Examples are to run it daily at a specific time, weekly, while the PC is idle, or during start or shutdown.
  5. Switch to actions, select new, and click on browse to add the script you want Windows to run for you.
  6. Click ok afterwards and you are done.