home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 1998 March
/
CHIPCD_3_98.iso
/
software
/
share
/
sharmies
/
unixdos
/
data.z
/
ex08.bat
< prev
next >
Wrap
DOS Batch File
|
1997-11-18
|
1KB
|
39 lines
@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%