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.
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.
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.
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.
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.
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!
If you are using Vista, Windows-7 or Windows-8, 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:
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.@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.*
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).
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.
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.
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.*
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: firstname.lastname@example.org
Helper program for MRTG, runs from the command-line and returns four lines with integers ..
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).
Free programs, needs Admin privilege on Vista and Windows-7/8. 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:
@ECHO OFF 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> )
Download GetUtcDateTimeString (2009 Jan 03)
Free program. Support is through the SatSignal self-help group.
Ben 1.2.2 (289,895 bytes; 2015-Nov-26)
Free program. Support is through the SatSignal self-help group.