DirHash can be invoked from the command like as follows:
DirHash.exe DirectoryOrFilePath [HashAlgo] [-t ResultFileName] [-progress] [-sum] [-sumRelativePath] [-includeLastDir] [-verify FileName] [-threads] [-clip] [-lowercase] [-overwrite] [-quiet] [-nologo] [-nowait] [-skipError] [-hashnames [-stripnames]] [-exclude pattern1] [-exclude patter2] [-only pattern1] [-only patter2] [-nofollow]
DirHash.exe -benchmark [HashAlgo | All] [-t ResultFileName] [-clip] [-overwrite] [-quiet] [-nologo] [-nowait]
Possible values for HashAlgo (not case sensitive):
- MD5
- SHA1
- SHA256
- SHA384
- SHA512
- Streebog
- Blake2s
- Blake2b
- Blake3
- Any combination of the above separated by comma, except when
-verify
is used
If HashAlgo is not specified, Blake3 is used by default.
ResultFileName specifies an optional text file where the result will be appended.
For example, setting HashAlgo to sha256,sha512 will use SHA256 and SHA512 for hashing the input file or directory and sha256,sha512,blake2s will use SHA256, SHA512 and Blake2s.
If -sum is used with multiple hash algorithms, a SUM file will be generated for each hash algorithm and its file name will ResultFileName appended with the hash algorithm name.
For example, if -sum is used with sha256,sha512, then two SUM files will be generated: ResultFileName.sha256 and ResultFileName.sha512.
if -benchmark is specified, program will perform speed benchmark of the selected hash algorithm
if -mscrypto specified, program will use Windows native implementation of hash algorithms (This is always enabled on Windows ARM platforms since OpenSSL is too slow on them).
if -sum is specified, program will output the hash of every file processed in a format similar to shasum.
if -sumRelativePath is specified (only when -sum is specified), the file paths are stored in the output file as relative to the input directory.
if -verify is specified, program will verify the hash of every file processed against its hash value present in the given checksum file.
if -includeLastDir (only when -sum or -verify is specified), the last directory name of the input directory is included in the SUM file entries and used in the verification process. This switch implies -sumRelativePath.
if -threads is specified (only when -sum or -verify specified), multithreading will be used to accelerate hashing of files. WARNING: This switch may slow down hashing on traditional Hard Disk Drives due to extensive parallel I/O operations. We recommend using this switch only with SSDs.
if -clip is specified, the hash result is copied to Windows clipboard. This switch is ignored when -sum is specified.
if -lowercase is specified, program outputs hash value(s) in lower case instead of upper case.
if -progress is specified, information about the progress of file hash operation is displayed.
if -overwrite is specified (only when -t is present), the output text file will be overwritten instead of having hash result appended to it.
if -quiet is specified, no text is displayed or written to the output file except the hash value.
if -nowait is specified, program will exit immediately after displaying the hash result. Otherwise, it prompts user to hit a key before it exits.
if -hashnames is specified, the case sensitive path of the files and directories will be included in the hash computation. Otherwise, only files content is used.
if -stripnames is specified (only when -hashnames also specified), only the the last path portion of files and directoroes is used for hash computation.
if -exclude is specified, it must be followed by a string indicating the file type that must be excluded from the hash computation. For example, to exclude .log files, you specify "-exclude *.log". This switch can be repeated many times in the command line to specify different file types to exclude.
If -only is specified (cannot be combined with -exclude), it must be followed by a string indicating the only file type(s) that must be included in the hash computation. For example, to include only .txt files, you specify "-only *.txt". This switch can be repeated many times in the command line to specify different file types to include.
if -skipError is specified, program will ignore any non-fatal errors and it will continue processing.
If -nologo is specified, program will not display the copyright message and version number on startup.
If -nofollow is specified, don't follow symbolic links, junction points or mount points, thus excluding them from hash computation.
DirHash can also be configured using a configuration file called DirHash.ini and which must be on the same folder as DirHash.exe.
When Sum=True is specified in DirHash.ini, it will have an effect only if -verify is not specified in the command line.
An example of DirHash.ini is shown below: