首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用Powershell删除重复文件

用Powershell删除重复文件
EN

Stack Overflow用户
提问于 2013-05-30 20:51:38
回答 5查看 16.2K关注 0票数 11

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

  1. 递归地搜索文件系统
  2. 查找dups (只按姓名或校验和方法或两者兼而有之)
  3. 删除除一个以外的所有副本。

我对powershell很陌生,我正把它扔给那些可能会帮上忙的PS人员。

EN

回答 5

Stack Overflow用户

发布于 2016-03-07 18:46:05

试试这个:

代码语言:javascript
运行
复制
ls *.txt -recurse | get-filehash | group -property hash | where { $_.count -gt 1 } | % { $_.group | select -skip 1 } | del

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

票数 17
EN

Stack Overflow用户

发布于 2013-05-30 21:08:35

保存文件字典,在前面已经遇到下一个文件名时删除:

代码语言:javascript
运行
复制
$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
}

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

票数 3
EN

Stack Overflow用户

发布于 2014-12-19 12:47:41

尽管这个问题很老,但我一直需要根据内容清理所有重复的文件。这个想法很简单,这方面的算法并不简单。下面是接受要删除重复项的“路径”参数的代码。

代码语言:javascript
运行
复制
 Function Delete-Duplicates {
    param(
    [Parameter(
    Mandatory=$True,
    ValueFromPipeline=$True,
    ValueFromPipelineByPropertyName=$True
    )]
    [string[]]$PathDuplicates)

    $DuplicatePaths = 
        Get-ChildItem $PathDuplicates | 
        Get-FileHash |
        Group-Object -Property Hash |
        Where-Object -Property Count -gt 1 |
        ForEach-Object {
            $_.Group.Path |
            Select -First ($_.Count -1)}
    $TotalCount = (Get-ChildItem $PathDuplicates).Count
 Write-Warning ("You are going to delete {0} files out of {1} total. Please confirm the prompt" -f $DuplicatePaths.Count, $TotalCount)    
 $DuplicatePaths | Remove-Item -Confirm

    }

脚本

( a)列出所有ChildItems

( b)从它们中检索FileHash

( c)按Hash属性对它们进行分组(因此所有相同的文件都在单个组中)

( d)过滤掉已经唯一的文件(组-eq 1的计数)

( e)遍历每个组并列出除最后路径之外的所有路径--确保每个"Hash“的一个文件始终保持不变。

( f)在前面发出警告,说明总共有多少文件和要删除的文件有多少。

可能不是最符合性能的选项(SHA1-ing每个文件),但确保文件是重复的。对我来说非常好:)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16845674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档