有时两个目录下有多个子目录和大量文件,一个个对比md5结果不现实,这时候传统CMD也不靠谱,需要用到powershell。

第一步,获取文件路径列表

我们假定有两个目录,是D:下的p1和p2文件夹

$p1 = Get-ChildItem -Path D:\p1 -Recurse | %{$_.FullName}
$p2 = Get-ChildItem -Path D:\p2 -Recurse | %{$_.FullName}

这样就把两个目录下的全部文件路径存在了p1和p2两个变量里。

第二步,计算md5并导出到文件

foreach ($i in $p1){Get-FileHash -Path $i -Algorithm MD5|Export-Csv -NoTypeInformation -Encoding UTF8 -Path p1.csv -Append }
foreach ($i in $p2){Get-FileHash -Path $i -Algorithm MD5|Export-Csv -NoTypeInformation -Encoding UTF8 -Path p2.csv -Append }

这样就把md5计算结果导出到了p1.csv和p2.csv里

之后打开csv,把两个文档复制在一个表下,不需要的内容(hash类型,文件路径)删除,留下两列hash值,筛选重复值或者唯一值即可

发表评论