Windows command line binary diff tools
Is there a Windows command-line diff
tool that is free?
I need to compare two binary files and see if they are different or not. I'm not interested in how they are different I just need to know if they are.
Use the comp command under cmd.exe
[C:\]comp /?
Compares the contents of two files or sets of files.
COMP [data1] [data2] [/D] [/A] [/L] [/N=number] [/C] [/OFF[LINE]]
data1 Specifies location and name(s) of first file(s) to compare.
data2 Specifies location and name(s) of second files to compare.
/D Displays differences in decimal format.
/A Displays differences in ASCII characters.
/L Displays line numbers for differences.
/N=number Compares only the first specified number of lines in each file.
/C Disregards case of ASCII letters when comparing files.
/OFF[LINE] Do not skip files with offline attribute set.
To compare sets of files, use wildcards in data1 and data2 parameters.
To simply see if they are different, you could MD5 them. For more detailed information on differences there is GNU DiffUtils for Windows.
The title is misleading, since the author doesn't really want a full diff. He only wants to know IF 2 files are different. The distinction is important if the files are big.
Checksumming methods will obviously read both files entirely. As far as I could tell, Windows' FC
and COMP
both also read the entire files, even if there was a difference in the first bytes.
As John T suggests, get GNU diffutils, which includes cmp.exe
. With big files, cmp
will be a lot faster than COMP or FC.
That is if you need it to be a command-line tool. If you can use a GUI shareware, Total Commander has a "Compare Files" command, and a "Synchronize dirs" command which can be set to compare files by content. Both are extremely fast.