# 设置要比较的两个目录的路径
$sourcePath = "XXXXXXX"
$destinationPath = "XXXXXXXX"
# 获取两个目录中的文件
$sourceFiles = Get-ChildItem -Path $sourcePath -File -Recurse
$destinationFiles = Get-ChildItem -Path $destinationPath -File -Recurse
# 使用Compare-Object来比较两个集合,并找出不同的文件
$diff = Compare-Object -ReferenceObject $sourceFiles -DifferenceObject $destinationFiles `
-Property Name, Length, LastWriteTime, ContentType -CaseSensitive
# 输出结果
foreach ($item in $diff) {
if ($item.SideIndicator -eq '=>') {
# 文件只存在于来源目录
Write-Host "文件 '$($item.Name)' 在 '$sourcePath' 中存在,但在 '$destinationPath' 中不存在。"
} elseif ($item.SideIndicator -eq '<=') {
# 文件只存在于目标目录
Write-Host "文件 '$($item.Name)' 在 '$destinationPath' 中存在,但在 '$sourcePath' 中不存在。"
} elseif ($item.SideIndicator -eq '==') {
# 文件在两个目录中都存在,但可能有属性不同
Write-Host "文件 '$($item.Name)' 在两个目录中都存在,但是属性有差异:"
Write-Host " 来源目录属性:"
Write-Host " Name: $($item.Name)"
Write-Host " Length: $($item.Length)"
Write-Host " LastWriteTime: $($item.LastWriteTime)"
Write-Host " ContentType: $($item.ContentType)"
Write-Host " 目标目录属性:"
Write-Host " Name: $($item.Name)"
Write-Host " Length: $($item.Length)"
Write-Host " LastWriteTime: $($item.LastWriteTime)"
Write-Host " ContentType: $($item.ContentType)"
}
}