Windows 二进制将所有文件与指定目录(和子目录)中的所有文件进行比较

Windows 二进制将所有文件与指定目录(和子目录)中的所有文件进行比较,windows,file,powershell,command-line,comparison,Windows,File,Powershell,Command Line,Comparison,我需要将目录及其子目录中包含的所有文件与同一目录及其子目录中包含的所有其他文件进行比较,并将匹配文件的路径记录到文本文件或CSV 我意识到有软件工具可以做到这一点,但除非它可以在Windows中开箱即用,否则我将不被允许在我的网络上使用它 讨论在命令提示符下使用文件比较工具上的二进制标志。这个脚本的问题是它使用匹配的文件名来执行二进制比较;也就是说,它在正在比较的两个目录中查找“文件1”。如果两个目录中都没有“文件1”,则不会进行比较 我需要的比较忽略文件名,只是蛮力比较当前文件与所有其他文件。

我需要将目录及其子目录中包含的所有文件与同一目录及其子目录中包含的所有其他文件进行比较,并将匹配文件的路径记录到文本文件或CSV

我意识到有软件工具可以做到这一点,但除非它可以在Windows中开箱即用,否则我将不被允许在我的网络上使用它

讨论在命令提示符下使用文件比较工具上的二进制标志。这个脚本的问题是它使用匹配的文件名来执行二进制比较;也就是说,它在正在比较的两个目录中查找“文件1”。如果两个目录中都没有“文件1”,则不会进行比较

我需要的比较忽略文件名,只是蛮力比较当前文件与所有其他文件。然后需要转到下一个文件

我对powershell或命令行脚本编写都没有足够的经验,无法使其递归工作,因此找不到示例


我知道,即使是在300个文件之间进行比较也需要相当长的时间,但我计划在一个周末的时间里让这个东西在后台运行

只是一个提示,真的。。。。我将生成每个文件的MD5校验和一次,并比较校验和,而不是将每个文件与其他文件进行比较


这可能会有帮助

更进一步,首先检查文件大小。如果文件大小不匹配,甚至不用麻烦校验和。这将大大加快执行速度。当你必须计算校验和时,就去做,而不是外部程序;我可以使用FCIV为目录及其子目录中的所有文件生成校验和吗?我正在寻找答案,但我想问可能会更快:)@alroc FYI v4内置了get-FileHash,多年来一直使用get-Hash。@KeithHill指出,但OP表示他不能使用任何不随Windows附带的东西(排除PSCX)。因此,除非他们已经将环境升级到v4(不太可能),否则他将不得不使用类似于我链接的方法。@KeithHill感谢您的建议,但这只是一个OOTB!有人知道FCIV是否已经在Server 2008磁盘上吗?我会去查的……我想说给出的解决方案很棒!我使用的语法看起来像
fciv c:\Test-r-xmlc:\users\shrout1\desktop\md5.XML
。这将递归工作,并创建一个可由Excel打开的XML文件。然后只需使用
条件格式>高亮显示单元格规则>重复值即可。哦,上面注释中给出的行需要输入到命令提示符中。