Dateiumfänge in DOS ermitteln

Noch gibt es unter den standardmäßigen DOS-Befehlen keine Möglichkeit, Informationen über die Größe von Dateien eines bestimmten Typs zu erhalten. FSIZE.DEB ermittelt mit den DOS-Funktionen »Find First File« und »Find Next File« die zum übergebenen Parameter passenden Dateien und addiert ihre Größen. Anschließend zeigt FSIZE das Ergebnis, eine 32-Bit-Zahl, auf dem Bildschirm an. Ebenso wie SPACE.DEB verwendet FSIZE hierzu eine spezielle Routine, die wir Ihnen im Anhang A (»Für den Programmierer«) genauer erläutern. Die Zeile »DB 91« steht übrigens für XCHG AX,CX (siehe »Bug in DEBUG« auf Seite ???). Im Unterschied zum DIR-Befehl, müssen Sie bei FSIZE den gewünschten Dateityp genau angeben. »FSIZE \Verzeichnis« ist also nicht möglich, »FSIZE \Verzeichnis\*.*« funktioniert jedoch. Wenn Sie keinen Parameter angeben, verwendet das Programm sämtliche Dateien des aktuellen Verzeichnisses. »FSIZE« ist also gleichbedeutend mit »FSIZE *.*«.

Name: FSIZE.DEB
Funktion: Ermittelt die Größe der spezifizierten Dateien.
Übersetzung: DEBUG <FSIZE.DEB
Prüfsumme: F95B
Anwendung: FSIZE [Lw:][Verzeichnis\Datei(en)]ohne Parameter: Größe sämtlicher Dateien im aktuellen

Verzeichnis

Einschränkungen: ./.
A
MOV DX,164          ;100
MOV BX,[80]         ;103
 AND BX,FF           ;107
JZ 114              ;10B
MOV [BX+81],BH      ;10D
MOV DX,82           ;111
MOV CX,27           ;114
MOV AH,4E           ;117
XOR SI,SI           ;119
XOR DI,DI           ;11B
INT 21              ;11D
JB 12D              ;11F
ADD DI,[9A]         ;121
ADC SI,[9C]         ;125
MOV AH,4F           ;129
JMP 11D             ;12B
MOV DX,SI           ;12D
MOV AX,DI           ;12F
MOV BP,A            ;131
CALL 13E            ;134
MOV DX,15E          ;137
MOV AH,9            ;13A
JMP 15B             ;13C
MOV CX,AX           ;13E
MOV AX,DX           ;140
XOR DX,DX           ;142
DIV BP              ;144
DB 91
DIV BP              ;147
XCHG CX,DX          ;149
PUSH CX             ;14B
MOV CX,DX           ;14C
OR CX,AX            ;14E
JZ 155              ;150
CALL 13E            ;152
POP DX              ;155
ADD DL,30           ;156
MOV AH,2            ;159
INT 21              ;15B
RET                 ;15D
DB " Byte$*.*",0

RCX
68
NFSIZE.COM
W
Q

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