Stupid shell tricks FTW! If you have a set of Unix-style shell tools (like Cygwin) available, the following script will do it:
#!/bin/bash
find "$@" -type f -print | sed -e 's/^/sha1sum "/; s/$/"/' | bash | sort | uniq --all-repeated=separate --check-chars=40 | sed -e "s/[^ ]* .//"
(If your browser has wrapped the above code, note that the only line break is after the "#!/bin/bash"; the rest is all one long line.)
Just invoke the script, passing the names of one or more drives or directories on the command line. The script searches all of the listed drives/folders, and lists each group of duplicate files it finds.
It works by recursively walking all of the specified drives/folders, generating a 160-bit checksum for each file, then finding all groups of files which have matching checksums.
So, e.g. if you've saved it as a script named
dupfiles, the command:
dupfiles d:/ e:/
would find all duplicate files on your D: and E: drives.
I love little scripting puzzles like this... and it is also an excellent illustration of why I install Cygwin on all of my Windows boxes, and why IMO everyone should learn how to use UNIX-style shell commands. You can accomplish a whole lot with very little code.