半个下午,整理相册,清理了1万多张重复图片,分享下方法

一直想整理,但一直没有做。
下午刚好有空,手动整理了下,比预计的简单还要快。
标记下,方便以后整理图片

我不大相信市面上清理重复图片的软件,所以按照电工思维,使用的是文件MD5对比校验,基本可以保证100%准确率。

使用工具:
1、md5命令行小工具(http://www.fourmilab.ch/
2、TotalCommander
3、BAT文件
4、Execl
5、Emeditor

实施过程:
1、建立    工作目录文件夹  ,把md5.exe、MD5.BAT、DEL.BAT 放入;
2、用TC打开需要整理的文件夹,使用Ctrl+b,显示出所有文件,然后Ctrl+a选定全部文件,Ctrl+3(复制名称(包括完整路径))。   注意:如果你的快捷键与我的不同,可以去菜单中寻找相关项目;
3、打开Emeditor,粘贴进去,后缀txt(eg: s.txt)保存到    工作目录文件夹   ,如果保存报编码错误,那就是 文件路径或者文件名 可能使用了空格之类不规范的命名方法,自己检查下;
4、运行MD5.BAT,按照提示输入刚才保存的txt文件名(s.txt)和md5计算后的txt文件名(d.txt),根据你文件数量大概30分钟?(小技巧:可以把s.txt分成好几份txt文档,这样可以使用多个MD5.BAT运行,也就是并发);
5、将生成的d.txt文件打开,复制到Excel sheet1,使用分列(空格),得到md5列和文件路径列;然后选定数据区域,  条件格式->突出显示单元格规则->重复值,我一般标记为红色;再然后选定数据区域,以MD5列为标准,按照颜色排序,复制有颜色的MD5值所在行(即重复值)到sheet2、sheet3;
6、在sheet3中,选定数据区域,以MD5列为标准,使用  删除重复项  按钮,得到每张照片唯一的对应路径名;
7、对比sheet2与sheet3,在sheet2中找出sheet3中没有的行;(在sheet2中找到空白列,比如c1,输入 =IF(COUNTIF(Sheet3!$B$1:$B$xxxx,B1),"Y","N") ,  将xxxx替换为sheet3的行数,然后向下填充);
8、在sheet2中按照(Y/N)值排序,然后复制含有  “N” 值的行到sheet4;
9、在sheet4中,选择文件路径列,复制到Emeditor,保存到工作目录文件夹,命名为del.txt;
10、运行DEL.BAT,按照提示输入刚才保存的txt文件名(del.txt)即可完成收工。

附上bat源代码,自己不大熟练,网上找的:
MD5.BAT:
@echo off
setlocal enabledelayedexpansion
set /p F_name=请输入要处理的文件名:
set /p D_name=请输入处理后的文件名:
for /f "tokens=*" %%a in (%F_name%) do (
set "st=%%a"
md5.exe !st! >> %D_name%
)
echo 文本处理完毕,按任意键退出
pause>Nul

DEL.BAT:
@echo off
setlocal enabledelayedexpansion
set /p F_name=请输入要处理的文件名:
for /f "tokens=*" %%a in (%F_name%) do (
set "st=%%a"
del !st!
)
echo 文本处理完毕,按任意键退出
pause>Nul

阅读剩余
THE END