用PowerShell 对比两个文件夹md5 不一致的文件

# 定义两个目录路径
$directoryA = 'XXXXXXX' # 修改为你的a目录路径
$directoryB = 'XXXXXXX' # 修改为你的b目录路径
# 获取目录A中的所有文件和子目录
$itemsA = Get-ChildItem -Path $directoryA -Recurse -File
# 获取目录B中的所有文件和子目录
$itemsB = Get-ChildItem -Path $directoryB -Recurse -File

# 创建一个哈希表来存储文件路径和 MD5 哈希值
$hashTableA = @{}
$hashTableB = @{}

# 遍历目录A中的所有文件和子目录
foreach ($item in $itemsA) {
$fullPathA = $item.FullName
$PathA = $item.FullName.Substring($directoryA.Length + 1)
$hash = Get-FileHash -Path $fullPathA -Algorithm MD5
$hashTableA[$PathA] = $hash.Hash
}

# 遍历目录B中的所有文件和子目录
foreach ($item in $itemsB) {
$fullPathB = $item.FullName
$PathB = $item.FullName.Substring($directoryB.Length + 1)
$hash = Get-FileHash -Path $fullPathB -Algorithm MD5
$hashTableB[$PathB] = $hash.Hash
}

# 比较两个哈希表中的哈希值
foreach ($key in $hashTableA.Keys) {
if ($hashTableB.ContainsKey($key) -and $hashTableA[$key] -eq $hashTableB[$key]) {
#$filePathA = "$directoryA\$key"
#$filePathB = "$directoryB\$key"
#Write-Host "文件名:$filePathA"
#Write-Host "文件名:$filePathB"
}
else{
$filePathA = "$directoryA\$key"
$filePathB = "$directoryB\$key"
Write-Host "文件名:$filePathA,$filePathB 不一致 "

}
}

posted @ 2025-03-06 15:30  沧海一粟1996  阅读(15)  评论(0)    收藏  举报