top of page

You can use the below PowerShell script to compare the hash values of multiple pairs of files.


Begin by giving each path for each file in your data set a unique name.

$file1 = "C:\foofolder\set1\analysis.xlsx”

$file2 = "C:\foofolder\set2\analysis.xlsx"

$file3 = "C:\foofolder\set1\Memo.docx”

$file4 = "C:\foofolder\set2\Memo.docx"

$file5 = "C:\foofolder\set1\Show1.pptx”

$file6 = "C:\foofolder\set2\Show1v2.pptx"


. . . then prepare lines comparing the hash of the first file to the second file:


if((Get-FileHash $file1).hash -ne (Get-FileHash $file2).hash)


. . . . you can parse through your data on an Excel spreadsheet like this:




. . . using a formula to number the files side by side. Copy the lines to a text editor and remove the resulting tabs, putting each line of script on a new line as necessary.


The script will give you a list of which files are same and which are different in the same order in which they are listed in the script.





$file1 = "C:\foofolder\set1\analysis.xlsx”

$file2 = "C:\foofolder\set2\analysis.xlsx"

$file3 = "C:\foofolder\set1\Memo.docx”

$file4 = "C:\foofolder\set2\Memo.docx"

$file5 = "C:\foofolder\set1\Show1.pptx”

$file6 = "C:\foofolder\set2\Show1v2.pptx"

if((Get-FileHash $file1).hash -ne (Get-FileHash $file2).hash)

{“files are different”}

Else {“Files are the same”}

if((Get-FileHash $file3).hash -ne (Get-FileHash $file4).hash)

{“files are different”}

Else {“Files are the same”}

if((Get-FileHash $file5).hash -ne (Get-FileHash $file6).hash)

{“files are different”}

Else {“Files are the same”}



See the post by Dr. Scripto here.


The Tip of the Night for December 5, 2015, discussed how to use the certutil command in Windows to generate a hash value for a specific file. You can also use the below script, first posted here, to generate a list of hash values for multiple files in a single folder

for %F in (*) do @certutil -hashfile "%F" MD5 | find /v "hashfile command completed successfully" >>list.txt

After entering command prompt, use the cd command to change the directory to the folder containing the files you need to process. Simply enter this script and then press return. A new file will be generated like this:

certutil can also generate SHA1 and SHA256 hash values. Sadly, this script as written will not give you the hash values for the files saved in subdirectories.



Here's a PowerShell script that you can use to get the MD5 hash values of multiple files that are in a directory with multiple levels of subfolders:

PS C:\Users\SeanKOShea> Get-FileHash -Algorithm MD5 -Path (Get-ChildItem "C:\FooFolder\baseball2\*.*" -Recurse -force) | export-csv c:\FooFolder\Batch01b.csv

The Get-FileHash algorithm can be set to generate MD5, SHA1 and other hash values. Follow this command with the folder containing your source files. This will work even if the files are saved in multiple subdirectories, thanks to the, 'Recurse -force'. Enter a pipe | and then use the export-csv command to output the results to a comma separated value file.

The .csv file that is generated will look like this:

This PowerShell script will work if you list different directories in multiple copies of this one line script, put them on separate lines in PowerShell, and run them all at once.


Sean O'Shea has more than 20 years of experience in the litigation support field with major law firms in New York and San Francisco.   He is an ACEDS Certified eDiscovery Specialist and a Relativity Certified Administrator.

The views expressed in this blog are those of the owner and do not reflect the views or opinions of the owner’s employer.

If you have a question or comment about this blog, please make a submission using the form to the right. 

Your details were sent successfully!

© 2015 by Sean O'Shea . Proudly created with Wix.com

bottom of page