智能手机的时代,随时都可以拍照,这样就带来一个问题,你需要经常备份这些照片,如果不出所料的话,你可能也很难避免经常每次都备份一份,按照日期命名,堆在一个很大的硬盘里面(或云存储里面),然后里面其实有很多是重复文件。备份这些照片,以及根据家里领导一句话整理或查找照片,我就要忙半天啦。
本文列出的脚本会删除文件,可能存在一定的风险,请你仔细阅读脚本,并且预先做好测试和验证。笔者不对你具体使用脚本导致的意外负有任何责任。.
那么如何快速删除重复文件呢?他们的文件名可能是一样,也可能不一样。但是大家要知道,在计算机眼里,不管你文件名是不是一样,它其实是可以通过一个所谓的哈希值来唯一标识一个文件的。
根据这个原理,我写了一个函数如下,可以很方便地达到这个目的。请在PowerShell 的最新版本窗口中粘贴这段代码。
function Remove-DuplicateFiles {
param(
[Parameter(ValueFromPipeline = $true, Position = 0, Mandatory = $true)]
[string]$path
)
Write-Host "该脚本会删除文件,可能存在一定的风险,请你仔细阅读脚本,并且预先做好测试和验证。你是否真的确定要运行? (Y/N)"
$yourchoice = Read-Host
if ($yourchoice -ne 'Y') {
Write-Host "你选择了不运行,脚本退出。"
return
}
Get-ChildItem -Recurse -File -Path $path`
| Get-FileHash `
| Group-Object -Property Hash `
| Where-Object { $_.Count -gt 1 } `
| ForEach-Object -Parallel { $_.Group | Select-Object -Skip 1 | Remove-Item }
}
然后,调用方式如下
本文列出的脚本会删除文件,可能存在一定的风险,请你仔细阅读脚本,并且预先做好测试和验证。笔者不对你具体使用脚本导致的意外负有任何责任。