如何用PowerShell筛选文件夹中相同大小的重复文件?
问题描述
我有数千张照片和视频需要清理,其中许多是重命名后的重复文件。我希望遍历文件夹,仅输出至少两个大小相同的文件名,以便后续排查是否为重复文件。当前执行以下命令可按文件大小分组,但会显示全部文件,请问如何仅输出相同大小的文件?
get-childitem $path -recurse -filter "*.mov" | group-object length | sort-object name -desc
解决方案
只需在分组后过滤出成员数量≥2的分组,再输出这些分组内的文件即可。修改后的命令如下:
Get-ChildItem $path -Recurse -Filter "*.mov" | Group-Object Length | Where-Object { $_.Count -ge 2 } | Sort-Object Name -Descending | ForEach-Object { $_.Group }
关键修改说明
Where-Object { $_.Count -ge 2 }:直接筛选出包含至少2个文件的大小分组,排除掉只有单个文件的分组,避免无效输出ForEach-Object { $_.Group }:将每个符合条件的分组里的文件列表展开,最终只输出大小重复的文件
如果需要更直观的展示格式(先显示对应文件大小,再列出所有重复文件路径),可以使用这个增强版命令:
Get-ChildItem $path -Recurse -Filter "*.mov" | Group-Object Length | Where-Object { $_.Count -ge 2 } | Sort-Object Name -Descending | ForEach-Object { Write-Host "`n📁 文件大小: $($_.Name) 字节" Write-Host "重复文件列表:" $_.Group | ForEach-Object { Write-Host " → $($_.FullName)" } }
内容的提问来源于stack exchange,提问作者Sweetlb
相关产品推荐
相关产品推荐

