Dateien in DOS vergleichen

Zwar bietet DOS einen Befehl zum Vergleichen zweier Dateien, doch läßt sich das Ergebnis – besonders in Stapeljobs – nur schwer auswerten. COMPARE.DEB liest zwei beliebig lange Dateien blockweise ein und vergleicht sie miteinander. Das Ergebnis landet im Errorlevel. Mithilfe von COMPARE können Sie nun z.B. automatisch nach Beendigung einer Datenbank-Anwendung eine Sicherheitskopie der geänderten Dateien auf Diskette erzeugen. Die folgende Stapeldatei kopiert die wichtigen Dateien zunächst unter einen anderen Namen, um später einen Bezugspunkt für den Vergleich zu haben. Ändert sich eine der Dateien, so fordert der Batch Sie zum Einlegen der Sicherungsdiskette auf und ergänzt dort die bearbeiteten Dateien:

@ECHO OFF
COPY TELEFON.DBF $TELEFON.DBF >NUL
COPY TELEFON.NDX $TELEFON.NDX >NUL
ECHO Eine beliebige Anwendung ...
ECHO z.B. dBase
COMPARE TELEFON.DBF $TELEFON.DBF
IF ERRORLEVEL 1 GOTO SICHERN
COMPARE TELEFON.NDX $TELEFON.NDX
IF NOT ERRORLEVEL 1 GOTO ENDE
:SICHERN
ECHO Dateien wurden geändert.
ECHO Bitte Sicherungsdiskette in Laufwerk
ECHO A: einlegen ...
PAUSE
COPY TELEFON.DBF A:
COPY TELEFON.NDX A:
:ENDE
DEL $TELEFON.DBF >NUL
DEL $TELEFON.NDX >NUL
Name: COMPARE.DEB
Funktion: Vergleicht zwei Dateien auf Übereinstimmung.
Übersetzung: DEBUG <COMPARE.DEB
Prüfsumme: 4A8D
Anwendung: COMPARE DATEI.1 DATEI.2IF ERRORLEVEL # # = 0: Dateien sind identisch

# = 255: Datei(en) nicht gefunden oder nicht identisch

Einschränkungen: ./.
A
CLD                 ;100
MOV DI,82           ;101
MOV DX,DI           ;104
MOV CX,80           ;106
MOV AL,20           ;109
REPNZ SCASB         ;10B
MOV By[DI-1],0      ;10D
MOV AX,3D00         ;111
CALL 155            ;114
MOV BP,AX           ;117
MOV DX,DI           ;119
MOV AL,D            ;11B
REPNZ SCASB         ;11D
MOV By[DI-1],0      ;11F
MOV AX,3D00         ;123
CALL 155            ;126
MOV BX,AX           ;129
MOV DX,15A          ;12B
MOV SI,DX           ;12E
CALL 150            ;130
MOV DI,AX           ;133
MOV DX,215A         ;135
XCHG BP,BX          ;138
CALL 150            ;13A
CMP AX,DI           ;13D
JNZ 14B             ;13F
MOV CX,AX           ;141
JCXZ 155            ;143
MOV DI,DX           ;145
REPZ CMPSB          ;147
JZ 12B              ;149
MOV AX,4CFF         ;14B
INT 21              ;14E
MOV CX,2000         ;150
MOV AH,3F           ;153
INT 21              ;155
JB 14B              ;157
RET                 ;159

RCX
5A
NCOMPARE.COM
W
Q

Quelle: 200 Utilities für PC-/MS-DOS von Gerhard Schild und Thomas Jannot