home *** CD-ROM | disk | FTP | other *** search
- @echo off
- rem ****** FIND DUPLICATE FILES ACROSS ALL DIRECTORIES ******
- set DRIVELIST=C: D:
- set LINE=1
- set LST=work5.tmp
- set OUT=files.dup
- uecho Collecting all names ...
- ufind %DRIVELIST% -show -type f -keyname: -ls > work1.tmp
- uecho Found a total of `wc -lt work1.tmp # cut -f1` files
- uecho Sorting all names ...
- usort work1.tmp -o work2.tmp
- usort -u +0 -1 -t: work2.tmp -o work3.tmp
- uecho Finding Duplicates ...
- diff -c1 work2.tmp work3.tmp > work4.tmp
- grep "^+" work4.tmp | cut "-d|" -f2 | cut -f1 -d: | usort -u > %LST%
- wc -lt %LST% | cut -f1 > work7.tmp
- uecho Found a total of @work7.tmp duplicates
- rm -rf %OUT%
- uecho Preparing output ...
- :LOOP
- getlines %LINE% %LINE% %LST% > name.tmp
- if errorlevel 1 goto END
-
- call setenv "NAME=@name.tmp
- uecho -e %LINE% of @work7.tmp : %NAME%
- uecho "=====================================" >> %OUT%
- sed "s:^:^:" ~$NAME > work6.tmp
- sed "s:\.:\\.:g" work6.tmp > work8.tmp
- sed "s:\$:\\$:g" work8.tmp > work6.tmp
- sed "s/$/:/" work6.tmp > work8.tmp
- grep "@work8.tmp" work2.tmp >> %OUT%
-
- call setenv "LINE=`expr $LINE + 1`"
- goto LOOP
-
- :END
- uecho "=====================================" >> %OUT%
- umore %OUT%
-