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


    同意。希望楼主不在乎剩下10%的误删概率。

TOP

回复 5# GNU


    先找到字节一样大小的,然后根据其他特征判断啊,比如文件数量,子文件夹数量,这两个特征也相同的话,应该是90%以上的可能是文件夹重复了。

TOP

回复 6# 523066680


    我很赞同,希望对楼主有用。

TOP

本帖最后由 523066680 于 2017-1-18 14:50 编辑

回复 5# GNU

      列出疑似相同的目录然后可以做进一步的深层的对比,然后将结果列举作为参考,并非即刻删除。
至于实用价值,你不需要,不代表别人用不上。

举例一个场景,某职位频繁更换职员,新上任的职员一般会对之前的资料复制副本保存在某个位置(最外层目录名可能被修改)。
但是有一任职员突然辞职,未能完成交接。而电脑上的资料又非常重要,目录体系非常复杂,且占用磁盘。
刚上任的职员如果在不了解文件名(但是懂程序)的情况下,如何找到分布在磁盘的冗余的目录副本?

关于判断文件是否相同,用 MD5 校验值即可保证准确度(文件越大越耗时)。

TOP

回复 3# taofan712


    两个字节数相同的文件,它们的内容可能不同,根据这种判断来删除文件夹是不是风险太大啦,没啥实用价值吧。

TOP

本帖最后由 523066680 于 2017-1-17 22:40 编辑

回复 3# taofan712

    以前考虑过,但是过了太久,忘了遇到什么问题了。

回想一下吧:

  • 可能会遇到目录自身的链接而陷入无限递归的情况(symbolic link),然后 dir /s 就输出大量冗余的结果并提示 “文件名太长”。
    虽然 dir 会告诉你这是个 <JUNCTION>
    举个例子
    1. set name=abcdefghijklmnopqrstuvwxyz
    2. mkdir %name%
    3. mklink /J .\%name%\%name% .\%name%
    复制代码
  • 可能会遇到非一般GBK字符的文件名,比如  "董贞 ・ 01.剑如虹.[贞江湖].mp3",需要确保能够正确访问这些文件的信息。

  • 如果使用文件短名,也可能出现冲突的情况

  • 当对比到两个目录内的文件一致的时候,它们的上一级目录也可能是完全一致的,甚至上上层,也意味着会有很多相同的子目录被冗余地显示出来。


准备用 C 配合 Perl 实现判断相同目录的程序,要做的事情很多,看心情吧

TOP

本帖最后由 taofan712 于 2017-1-17 15:44 编辑

小菜鸟借楼继续提问,请问下我的代码为什么在处理tmp.txt的时候,没能把重复的行找出来 ?
我想的是把楼主问题里的文件夹的几个特征(文件个数,对象个数,字节大小)写进tmp.txt,然后对比字节大小,相同的就写进结果文本。再根据文件个数等特征肉眼判断文件夹是否一模一样。。。。。
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%a in ('dir /ad /b /s f:\test') do (
  4. for /f %%b in ('dir /a /b %%~fa^|find /v /c ""') do set  n=%%b
  5. for /f "delims=" %%c in ('dir %%~fa^|find "个文件"') do set m=%%c
  6. set str=!n!_!m:~0,-3!
  7. echo %%~fa  !str!>>tmp.txt
  8. )
  9. for /f "tokens=1,2,3,4,5 delims= " %%i in (tmp.txt) do (
  10. echo %%i %%j %%k %%l %%m & pause>nul
  11. if not defined %%m (set %%m=D
  12. ) else (find "%%m" tmp.txt>>rst.txt & echo _____>>rst.txt)
  13. )
复制代码

TOP

http://bbs.bathome.net/viewthrea ... C8%C8%FC&page=1

参考第九题 以及后面其他论坛会员的方案

TOP

返回列表