我正在寻找以下情况的解决方案。我有一个文本文件中的哈希列表,我想找到与文本文件中的哈希匹配的某个文件夹和子文件夹中的每个文件。
找到的文件将作为结果列出,我很乐意删除(或者移动或复制)那些找到的文件......
有没有简单的方法(软件工具)来做到这一点?或者有人有解决方法吗?
提前致谢
答案1
我知道这个问题已经存在很久了,但是我一直在寻找答案,当我在这里找不到答案时,我想出了这个 powershell 脚本:
#you can change this hashAlgorithm to be any of the following
# SHA1 | SHA256 | SHA384 | SHA512 | MACTripleDES | MD5 | RIPEMD160
$hashAlgorithm = "MD5"
#you can change this to point to the folder containing all of your files
$sourceFolder = "C:\Users\Public\Documents\my-files\"
#the name of the file containing all of your hashes
$hashesFile = "MD5SUMS"
$hashesFilePath = ($sourceFolder + $hashesFile)
Get-ChildItem $sourceFolder -Recurse -Exclude $hashesFilePath -Attributes !Directory |
ForEach-Object {
$currentHash = Get-FileHash $_.FullName -Algorithm $hashAlgorithm | Select -ExpandProperty "Hash"
If (Select-String $hashesFilePath -pattern $currentHash -quiet)
{
echo ("Matching hash for " + $_.FullName)
} Else {
echo ("Hash not found for " + $_.FullName)
}
}
这应该可以让你开始。它对于诸如多个文件可能包含完全相同内容之类的事情并不是非常稳健的 - 这只是这个简单的脚本无法处理的。例如,如果您有一个在 MD5SUMS 文件中表示的空文件,那么当任何其他空文件完成其计算时...此脚本将显示找到匹配项。