使用Powershell删除重复文件

not*_*tec 5 powershell

我有几千个重复文件(jar文件作为示例),我想使用powershell

  1. 递归搜索文件系统
  2. 找到重复项(通过名称或校验和方法或两者)
  3. 删除所有重复但只有一个.

我是PowerShell的新手,我把它扔到可能能够提供帮助的PS人群那里.

Kai*_*ang 10

试试这个:

ls *.txt -recurse | get-filehash | group -property hash | where { $_.count -gt 1 } | % { $_.group | select -skip 1 } | del
Run Code Online (Sandbox Code Playgroud)

来自:http://n3wjack.net/2015/04/06/find-and-delete-duplicate-files-with-just-powershell/


Neo*_*isk 3

保留文件字典,当之前已经遇到下一个文件名时删除:

$dict = @{};
dir c:\admin -Recurse | foreach {
  $key = $_.Name #replace this with your checksum function
  $find = $dict[$key];
  if($find -ne $null) {
    #current file is a duplicate
    #Remove-Item -Path $_.FullName ?    
  }
  $dict[$key] = 0; #dummy placeholder to save memory
}
Run Code Online (Sandbox Code Playgroud)

我使用文件名作为密钥,但如果需要(或两者),您可以使用校验和 - 请参阅代码注释。