!*! Updated on 03-Jun-94 at 3:53 PM by Michael A. Lewis; edit time: 0:28:05
!*! Created on 03-Jun-94 at 2:20 PM by Michael A. Lewis; edit time: 0:10:20
!
! Compares files in directories
! Copyright 1994 by d/SOFT Ltd
! All Rights Reserved
!
! Permission is given to use this program and modify it for your own
! use. You may not distribute this program or non-trivial parts of it
! without the express permission of d/SOFT Ltd, 310 Cedar Lane, Teaneck
! NJ, 07666 (717) 629-7190.
!
! This program compares the contents of the directory that you are
! logged into with the directory specified on the command line. The
! files are examined to see if the hash totals are the same.
!
string hash1,hash2 ! two variables to hold hash values
string filename ! name of file to check
string 14 device,account,name
string 80 tail ! command tail
float i,j
log.errors
when len(.options)=0
dual.print "%Usage: _run cmpdir {devn:}{[p,pn]}{/f:name}"
end
wend
tail=ucs(.options)
j=instr(1,tail,"/F:")
when j
filename=filespec(tail[j+3,len(tail)],"LST")
when filename=""
print "%Bad list filename specified"
end
wend
tail=tail[1,j-1]
open #99,filename,output
j=99
print #j,"Directory Comparison Report"
wend
i=instr(1,tail,":")
if i device=tail[1,i]
i=instr(1,tail,"[")
if i account=tail[i,len(tail)]
open #1,"[]",directory ! open our directory
do next.directory #1 into name until name=""
filename=device+name+account
print #j,"Checking ";name;". ";
if j print ".";
lookup filename,i
when i=0
print #j,"Does not exist in ";device+account
again
wend
hash1=hash(name)
hash2=hash(filename)
when hash1<>hash2
print #j,"Hash does not match"
print #j," ";hash1;"; ";hash2
else
print #j,"Same."
wend
enddo
print
end