These MD5 based utilities allow you to manage MD5 hash codes for all of the files in a directory (or subdirectory) so that an integrity check can be made against these files later. You should include the utilities with the copy so that after the files are downloaded or transfered to a DVD or hard drive, the recipient can perform the integrity check to ensure that the files are exactly the same as the originals. To use this, copy the these files to the directory where the files are located: md5.exe md5build.bat md5bhildRepeatDirs.bat md5check.bat md5checkRepeatDirs.bat md5readme.txt timer.bat timer_disabled.bat timer_enabled.bat wait.exe Building the Hash List: From a command prompt, switch to the base directory that contains the original files that need a hash computed. In that directory, execute the "md5buildRepeatDirs" batch file. (If you don't want to include subdirs, just execute "md5build"). For large files, like ghost image files, it will take several minutes. The md5buildRepeatDirs.bat script iteratively calls the md5build.bat script once for each subdir. The md5build.bat file outputs a file called "md5.output.txt". Once md5build.bat is finished, you might want to edit the md5.output.txt file and remove any unwanted entries. (for example, you can remove the entries for md5.exe, md5build.bat, and md5check.bat - though there is no harm in leaving them in the ouput file). Be sure to copy the following 7 files to the directory containing the source files when you upload to a server or create a DVD so that others can be sure that the same version of md5 accompanies the original files. (put them on each DVD in each subdir if you can) - md5.output.txt - A file created by md5build.bat. It contains a list of file names and their matching hash values so that md5check.bat can be run against them. Each entry in the md5.output.txt file looks something like this: ACDF021A07DC87D9D9AEA5CF94D65F3D D65-000001-S001.vmdk where: the first column represents the md5 hash code the second column is the file name - md5.exe - The same version of the md5 hash executable that generated the md5.output.txt file. It is the same executable that was used in the md5build.bat. - md5buildRepeatDirs.bat - A batch script that iteratively calls md5build.bat for the current directory and all subdirs. Optionally, the script accepts an additional argument that allows you to specify a more specific filespec. For example: md5buildRepeatDirs *.doc - md5build.bat - A batch script that runs the md5.exe tool using the following command for each file in the filespec: md5 %1>>md5.output.txt Optionally, the md5build.bat command can take an additional argument as follows, that allows you to specifiy a more specific filespec: md5build *.g* would produce an md5.output.txt file containing the hash codes only for all the ghost files (*.gho, *.ghs) in the current dir. For each directory where an "md5.output.txt" file was produced (it won't create one for empty directories), the md5build.bat script will put a copy of these utilities. They go into each directory in order to avoid having to set a path variable to a common location. The files are small (78k total). Errors are logged in C:\md5check.err.log, so you must run under credentials that allow you write privileges to C:\. - md5checkRepeatDirs.bat - A batch script that iteratively calls "md5check.bat /q" for the current directory along with the subdirs. At the end, it will - md5check.bat - Reads the md5.output.txt file and rehashes the file specified on each line of the file. Then it compares it with the file's matching hash code that was produced from the original files. It will display PASS or FAIL depending on the results - the goal being 100% PASS and 0 FAIL. C:\md5check.err.log is produced to summarize all the failed files. (source drive couldn't be used because sometimes the source drive is a cdrom, which is read-only, and we can't put the md5check.err.log file on a ready-only device) - md5readme.txt - This file... that explains/documents how to use the md5 utilities. - timer.bat - A batch script that counts once per second and stores that value into a file that is placed in the C:\ directory. The md5check.bat script reads the value before processing a file and afterward. Then it subtracts the difference and computes a throughput. You can obtain updates from http://davesamuels.com/utils/md5.