[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] [已解决]批处理能否实现删除重复图片

首先我有一个大的文件夹,然后里面有很多个子文件夹,然后子文件夹里面有很多照片

,然后每一个单独的子文件夹里有很多重复的照片,但是名字不同

,然后还有就是有可能在其他子文件夹中也会存在其他文件夹里的相同的照片

,现在我最终的诉求是想要每个子文件夹里单独查重就行了,然后完全重复的把它直接删掉,然后我不需要进行全文件夹都去比对,我只需要每一个子文件夹去单独和自己文件夹内的图片进行比对就行了,可以有办法实现吗?求集思广益写个代码~~~
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

回复 1# a475012621

由于测试附件太大了无法上传

TOP

链接:https://pan.baidu.com/s/1r2u8rqj_2Q6i5dHHNmq0fQ?pwd=gjzl
提取码:gjzl
--来自百度网盘超级会员V2的分享

TOP

回复 3# a475012621
这是测试文件

TOP

每一个子文件夹去单独和自己文件夹内的图片进行比对就行了

这个是根据文件名有  副本(x)  字样来判断吗?

QQ 20147578

TOP

本帖最后由 wanghan519 于 2023-8-7 14:05 编辑

用的powershell,请小心测试,大概意思就是对每个子文件夹建个字典d,然后检查图片的md5码,是否出现在字典的keys里,如果不曾出现就新建字典项,如果出现就删除文件。。。
  1. dir A-* -Directory | % {$d=@{};dir $_ | sort -Descending | % {$m=(Get-FileHash $_.FullName -Algorithm MD5).Hash;if($d.ContainsKey($m)){rm $_.FullName}else{$d.Add($m,1)}}}
复制代码

TOP

文件名带“副本”两个字
和对应的不带“副本”两个字
是否真的全都是相同的

TOP

本帖最后由 qixiaobin0715 于 2023-8-7 15:17 编辑

如果只是删除文件名中含有“副本”字样的图片文件,将批处理文件另存为ANSI编码,放在主文件夹中运行:
  1. del /s /f "*副本*.jpg"
复制代码

TOP

回复 5# czjt1234


不是,我的意思是图片内容一样,文件名有没得副本不重要

TOP

回复 8# qixiaobin0715


    不是的,和文件名无关,这是我复制出来用来测试的,我是想删除内容相同的图片

TOP

回复 6# wanghan519


    用power shell 测试了一下,好像可以实现删除重复的

TOP

回复 6# wanghan519


    但是有个问题是我如果子文件夹下不止一级目录的话,就报错

TOP

回复 7# Five66


    图片内容相同,文件名不同

TOP

本帖最后由 wanghan519 于 2023-8-7 16:07 编辑

回复 12# a475012621


    如果说A-1里面的子文件夹一起考虑去重那大概是
  1. dir A-* -Directory | % {$d=@{};dir $_ -File -Recurse | sort -Descending | % {$m=(Get-FileHash $_.FullName -Algorithm MD5).Hash;if($d.ContainsKey($m)){rm $_.FullName}else{$d.Add($m,1)}}}
复制代码
如果A-1里的子文件夹也要分别去重,大概是
  1. dir A-* -Directory | % {$d=@{};dir $_ -File -Recurse | sort -Descending | % {$m=$_.DirectoryName+"\"+(Get-FileHash $_.FullName -Algorithm MD5).Hash;if($d.ContainsKey($m)){rm $_.FullName}else{$d.Add($m,1)}}}
复制代码
1

评分人数

TOP

回复 14# wanghan519


    感谢感谢,可以实现了

TOP

返回列表