Disk Utilities
Home Page Up FAQs Registrations What's New? Audio Tools Components Disk Utilities Image Utilities Mapping Tools Net Tools Satellite Tools Runtimes Translations Custom programs Beta versions NTP Windows-10 notes


Disk Utilities

I offer a number of disk utilities that I have developed over the years, and use on a daily basis.  They are mainly concerned with routine file and hard disk maintenance.

  • Equalise - synchronise folder trees - make files on a floppy or network drive match you hard disk
  • FindDuplicates - find and remove those multiple copies of DLLs and other files
  • SetAffinity - stops SmartDefrag from taking all the CPU in all processors
  • ShowMan - disk usage piechart - graphical view onto your disks, drill down and see where the disk space has gone
  • TrimTree - utility to remove files from a complete directory tree if those files are older than a specified age (unsupported)
  • WinTidy - locate and remove those temporary files you never knew you had

and because they don't fit elsewhere, some miscellaneous stuff:

Software Support and Registration

The Disk Utilities described on this page are currently freeware, but if you require support on the software you must register with me.  Registration is also an easy way you can say "Thank You" if you like the software.

Click here to register the Disk Utilities now!

A reminder that you can be on a mailing list free of charge to be automatically notified of any updates.


Program written to synchronise folder structures on two different computers over a network, or between a computer and a floppy disk.  It can be used to keep up-to-date safety copies of files on floppy disks, or to allow program development on two different computers - perhaps one at work and one at home.

V6.0.0 Move options to separate tab, add exclude directory list option, add Fast option (fewer directory lookups).
V6.1.2 Add file exclusion list to the Options page.


Find Duplicates was written to allow you to control your disk space usage by discovering files that are duplicated and, should you so wish, deleting one or more of these duplicates. There are many ways in which duplicate files can be deposited on your hard disk, for example programs which don't check to see if you have a particular DLL installed and install their own private copy in any case, or other programs that install a DLL in your \Windows directory when it is already in \Windows\System32.

V5.1.2 Add Skip windows directories option (includes the SYSBCKUP folder option).
V5.1.4 Add right-click popup menu (adds new Open Container item, duplicates existing Properties menu), add more thorough checksum option ("Better check")



Program to make SmartDefrag 3.0 run on just the first processor in a system.  This was required as on a dual processor PC, at startup, SmartDefrag 3.0 would take all the CPU and really slow the system down.  By setting the program to use just the first processor, at least the remaining processor can proceed with the startup tasks.  Note that this program can make no difference on a single-processor PC!  Place a shortcut to the program in your startup folder.  Includes source code.

Sample output:

 Process SmartDefrag.exe ID is: 2692 
 Before process: 0003, system: 0003  
 After process: 0001, system: 0003   


Program to help recover disk space.  Gives pie-chart view of disk usage, including unused space, with the ability to drill down into folders.  Shows actual or nominal space occupied. Knows about the effects of cluster sizes.  If you want a piechart of your FTP space on an ISP, look at my FTPpie utility.

To see the space occupied by a folder tree, just right-click the folder in Windows Explorer, and use the Usage PieChart option (after installing the program).  To drill down, just double-click the folder of interest.  Very handy when you want to recover some disk space!

Screen shot of ShowMan at work

V6.0.0 Make right-click properties honour the desktop font, add Explore, Delete and Open options for piechart and list right-click, rebuild tree after Delete.
V6.0.2 Report compressed and sparse files greater than 4 GB correctly.
V6.0.4 Larger group box for options (suits Vista better), compile with Delphi 2009 (may provide improved Unicode support).
V6.0.6 Improve legibility of item list.
V6.0.8 Correct display of compressed files if access restricted.
V6.1.0 Add TB (terabytes) display.
When using TB the list order may not be what you expect as there are a limited number of decimal digits used in the list.
V6.2.2 Allow for exclusion list in Exclude.ini, entries like:
.. [Directories]
.. 2=system volume information
It's for directories only, the numbers (1= etc.) don't matter but ARE required, upper or lower case is ignored in the folder names, exclusions.ini must be in same directory as ShowMan.exe, a sample file supplied - rename before use. 
  Add button to stop timer refresh after first scan, leave it Enabled in the options dialog, though, add TB to Options dialog, Units, show disk free space in status panel.  Add icon to File Explorer right-click.  You'll need to set that option again to get the icon.

If you are using Vista, Windows-7 or later, and want the right-click usage piechart option, you may need to run the program as administrator when setting that option.



Unsupported utility to remove files from a complete directory tree if those files are older than a specified age.  Intended for command-line use in overnight or login-time batch jobs.  To create a batch job, choose a suitable directory in Windows Explorer, right-click, New, Text document..., and name your file PurgeFiles.cmd.  Now right-click your new file, and select Edit.  You will be able to use Notepad to enter the lines shown below.

Note that the dates are measured in days (unless the minutes for is used - e.g. 1440m).  For example: if today is July 29, and you specify "1", only files dated earlier than 00:00 (UTC) July 28 will be deleted.  However, if it was 15:00 (clock) on July 29 and you had specified "1440m", files earlier than 15:00 (clock) July 28 would be deleted.  Files which are in use will not be deleted.

Usage example 1 - log files from Ship Plotter and Plane Plotter

Here is a different example - to manage the log files from Ship Plotter, Plane Plotter and SBS-1 BaseStation software.  ShipPlotter log files are kept for two weeks, and the aircraft-related files for seven days.  Remember that some programs, such as Plane- and Ship Plotter roll over files at midnight UTC, so you may need to schedule your job for some time after 01:00 clock in the UK or after 02:00 in Western Europe to be sure of catching the most recent file.

@ECHO Remove the older PlanePlotter and ShipPlotter log files
TrimTree  7  "C:\Tools\COAA\PlanePlotter\log files\"  plane*.log
TrimTree  7  "C:\Tools\COAA\PlanePlotter\log files\"  multilat*.log
TrimTree  14  "C:\Tools\COAA\ShipPlotter\log files\"  ship*.log
@ECHO Remove the older SBS-1 BaseStation log files
TrimTree  7  "C:\Tools\Kinetic\BaseStation\"  20*.bst

Note that you could combine the first two commands onto one line, if they have the same 7-day retention period and are in the same directory:

TrimTree  7  "C:\Tools\COAA\PlanePlotter\log files\"  pp*.log  multilat*.log

and that the quotation marks are only needed if there is a space in the file path.  I have chosen to put both my Ship Plotter and my Plane Plotter log files in the same directory - one with no space in the path.  Doesn't this look neater?

TrimTree  7  C:\Tools\COAA\LogFiles\  plane*.log  multilat*.log  ship*.log

Usage example 2 - processed Meteosat data:

@ECHO Remove less interesting channels after 2 days
TrimTree  2  C:\MSG\images\  *-msg-ch06.*  *-msg-ch07.*
@ECHO Remove more interesting channels after 7 days
TrimTree  7  C:\MSG\images\  *-msg-ch02.*  *-msg-ch09.*
In this example, files which are older than 2 days, living in the folder C:\MSG\images\ and below, which match either the file names for MSG HRIT channel 6 or MSG HRIT channel 7 would be deleted, and the files older than 7 days for MSG channels 2 and 9.  This allows you to optimise disk storage by keeping the more interesting data for a longer period.  
The first parameter after the command TrimTree specifies the number of days which should elapse before a file is considered "old" and therefore a candidate to be deleted.  This date is based on the file's modification date, which is the one usually displayed by Windows Explorer.  The second parameter is the root of the directory tree from which you want to start the scan.  The third and subsequent parameters specify the files which should be deleted.  Note that I have used "wildcard" file specifiers, so that any file with "-msg-ch06." in the file name will match for the first example.
The lines above would be entered into a command-file such as Nightly.cmd, and you would use the Control Panel, Scheduled tasks function to make Nightly.cmd run at, for example 03:05 in the morning.  If your computer is not on 24 hours a day, you could make the task run when you start up the computer by putting a shortcut to the Nightly.cmd file in your Program File, Startup folder.

You might also want to delete any empty directories which TrimTree discovers during its scan.  You can do this by adding "-empty" as the final parameter.  Only completely empty directories will be deleted.

TrimTree  7  C:\MSG\images\  *-msg-ch02.*  *-msg-ch09.*  -empty

Usage example 3 - unprocessed EUMETCast data

Another use might be to remove EUMETCast data which you don't process, although this is actually better done by editing entries in the recv-channels.ini file.  Suppose that you decide that any unprocessed EUMETCast data more than 2 days old is of no interest, and that you have a default EUMETCast installation where data is saved to the directory:  C:\Program Files\T-Systems\Business TV-IP\received.  Note that there is a space in "Program Files" and before "TV-IP", so quotation marks are needed around the directory parameter.  Into your Nightly.cmd file, you could add the lines:

@ECHO Remove the unprocessed data which is 2 days or more old
TrimTree  2  "C:\EUMETCast\received\"  *.*

This would remove any files older than 2 days which are in the \received\ directory, and in any directory below \received\.  If you have other receiving directories in the TelliCast tree, you can process them individually instead:

@ECHO Remove the unprocessed data which is 3 days or more old
TrimTree  3  "C:\EUMETCast\received_EPS10\"  *.*

If the directory names contains spaces, be sure to enclose them in quotation marks (shift-2 on an English keyboard).  

Important!  If you use TrimTree like this, be sure to copy any files in the \received\updates\ directory elsewhere for safe keeping, or mark them read-only.
Note: The MSG Data Manager now includes a function which you can use to keep the \received\ directory clear of older files.  Go to: Setup, Options, File Controls, RX disk space control.  Leave the RX space monitor /not/ checked, and select a non-zero value for auto-clean minutes, e.g. 360 for clearing out the data every six hours.  Only data which is timestamped 6 hours (in this example) earlier will be deleted.

Usage example 4 - cleaning out the temporary files from a EUMETCast 2.5.17 client

Here we want to clean out the tmp_directory files which may get left over with the newest EUMETCast 2.5.17 client software if it is stopped and restarted.

  1. Find a suitable directory, perhaps C:\EUMETCast\, and extract TrimTree.exe to that directory.
  2. If you don't have file extensions visible in Explorer, enable their display.  See here.
  3. Using right-click, create new text document, create a file in that directory named Cleanout.cmd.  You may get a  warning about the file extension not being .TXT, but dismiss the warning and accept the new name.
  4. Right-click Cleanout.cmd, and select Edit.  Notepad should appear.
  5. Enter one line into the file:
      TrimTree  720m  C:\EUMETCast\tmp\  *
  6. Substitute the location where the temporary files are stored if it not C:\EUMETcast\tmp\
  7. Save the file from Notepad, and close Notepad.
  8. Double-click on Cleanout.cmd.  You should see TrimTree running in the middle of the screen, with a list of deleted files appearing briefly, and then TrimTree will close.
  9. If you run it a second time, likely there will be no files left to clean out.

You can run the command file Cleanout.cmd either on a nightly basis if you run 24 hours a day, or if you restart on a daily basis you could right-click drag it to your Start button, All programs, Startup folder, and create a new shortcut there so that the command is executed every time you log in.  See the notes below about using the Windows Scheduler.

Should you wish, you can have multiple command in Cleanout.cmd, such as:

TrimTree  720m  C:\EUMETCast\tmp\  *
TrimTree  720m  C:\EUMETSAT\EUMETCast\receiving\tmp\  *
TrimTree     2  C:\EUMETCast\received\  *

where the second command cleans out temporary files from the directory where the downloaded EUMETSAT Product Navigator is stored (720 minutes), and the third cleans out any unprocessed files left over and more than two days old in the \received\ folder tree.

Here's a more comprehensive example for removing unwanted HVS-1 TPG-1 and TPG-3 (GOES-16 and GOES-17) data - your directory will be different, of course:

TrimTree 30m   L:\Tools\EUMETCast\received\E1H-TPG-1  ABI-L2-?SRF-M?_v?r?_g16*
TrimTree 30m   L:\Tools\EUMETCast\received\E1H-TPG-1  OR_ABI-L2-*G16*
TrimTree 30m   L:\Tools\EUMETCast\received\E1H-TPG-1  OR_GLM-L2-LCFA_G16*
TrimTree 30m   L:\Tools\EUMETCast\received\E1H-TPG-1  OR_SEIS-L1b-????_G16*

TrimTree 30m   L:\Tools\EUMETCast\received\E1H-TPG-3  ABI-L2-?SRF-M6_v?r?_g17*
TrimTree 30m   L:\Tools\EUMETCast\received\E1H-TPG-3  OR_ABI-L2-*G17*
TrimTree 30m   L:\Tools\EUMETCast\received\E1H-TPG-3  OR_GLM-L2-LCFA_G17*
TrimTree 30m   L:\Tools\EUMETCast\received\E1H-TPG-3  OR_SEIS-L1b-????_G17*

Information about using the Windows Task Scheduler

Note: if you use TrimTree in a command-file, be sure not to call that file TrimTree.bat or TrimTree.cmd!  If you do, the TrimTree command will loop.  Call it PurgeFiles.cmd instead.  If you must call it TrimTree.bat, you will need to specify TrimTree.exe in the actual command file:

TrimTree.exe  2  C:\MSG\images\  *-msg-ch06.*  *-msg-ch07.*
V2019.10.27 Reduce the end-of-program delay from 3 to 2 seconds.
Handle clock change by using UTC everywhere.
Change to using the date as the main version number.
V2020.01.21 Add notice if no parameters found.



Program to help recover disk space. Finds backup, object & temporary files that might be candidates for deletion and allows the user to delete one or more of these files. Can be automated.

V5.0.2 - remove requirement for runtime library.



As you know, some of my software is free, but should you wish to say thanks, you can make a small donation by sending me an Amazon Gift Certificate here:


My e-mail for Amazon is: david-taylor@blueyonder.co.uk

Disk Temp

Helper program for MRTG, runs from the command-line and returns four lines with integers ..

  • temperature in C of HDD 0
  • temperature in C of HDD 1 (or zero if no second HDD)
  • zero
  • zero

You can read more about how to use DiskTemp in MRTG monitoring here.  There is also a program which runs continuously which reports the temperature every minute, and can be run in admin mode independently of MRTG (required for Vista and Windows-7/8).

  • icon-download.gif (908 bytes) Download DiskTemp  (2009-Oct-30, supports one parameter, starting disk number, default is to report disks 0 and 1, with parameter "2" reports disks 2 and 3 etc.)
  • icon-download.gif (908 bytes) Download DiskTemperatureReporter  (2018-Jun-15, runs continuously, start as Admin.  Include minimal program to analyse the disks available.)

Free programs, needs Admin privilege on Vista and Windows-7/8/10.  Support is through the SatSignal self-help group.



This is a rather specialised program to help you in batch files when different actions need to be taken at different times, or when the date and time are needed to identify a particular file name.  Copy the file GetUtcDateTimeString.exe to somewhere on your path - \Windows\System32\ if you must.  The program takes one parameter, a floating point number giving the offset from real UTC which is to be reported, you you could get yesterday's details by using "-1" as the parameter.  Omit the quotation marks.   First, it works by returning a set of strings on standard output, which you can set to the year, month or day etc. like this:


REM Sets the environment variables YY etc. to the UTC date/time

for /f "tokens=1-6 delims=/:. " %%i in ('GetUtcDateTimeString') do (
set YY=%%i
set MM=%%j
set DD=%%k
set HH=%%l
set NN=%%m
set SS=%%n

Now you can use the environment variables as you would use any other.  For example, in a batch job which is run every 30 minutes, at 25 minutes and 55 minutes past the hour, you might want to take different action in the 55-minute run to the 25-minute run.  You could use code like this:

IF %NN% LEQ 30 (
  <actions for the 25-minute time>  
) ELSE (
  <actions for the 55-minute time>

  icon-download.gif (908 bytes) Download GetUtcDateTimeString  (2005-Jul-06 the small version requires my runtimes, 2016-Mar-11 the "Full" version does not)

Free program.  Support is through the SatSignal self-help group.


Tiny Ben

Screen-shot of TinyBen at work Really simple analog clock:
  -no alarms
  -no Internet time
  -no Atomic time
  -no calendar


V1.2.0 Add ability to offset UTC time by +/- 12 hours (will not be remembered over program invocations, offset will be reset to zero when the program starts).
V1.2.2 Remove "u" when UTC offset is in use.

icon-download.gif (908 bytes) Download Tiny Ben 1.2.2  (289,895 bytes; 2015-Nov-26)
MD5 signature: 69222FE41B795BD08892590C9431729E

 Free program.  Support is through the SatSignal self-help group.

Copyright © David Taylor, Edinburgh   Last modified: 2021 Nov 07 at 07:45