Aktuelles Tagesdatum in DOS ausgeben

Eine etwas schönere Alternative zu »ECHO.|DATE« stellt DATUM.DEB dar. Das Programm ermittelt per DOS-Funktion 2Ah das aktuelle Systemdatum, formt die erhaltenen Werte in ein dezimales Format um und zeigt das Ergebnis auf dem Bildschirm an. Der Name des entsprechenden Wochentags wird über eine Tabelle ermittelt. Sie haben jetzt z. B. die Möglichkeit, den letzten Tag, an dem Sie ein bestimmtes Programm verwendet haben, festzuhalten. Ein aufrufender Stapeljob könnte so aussehen:

@ECHO OFF
IF NOT EXIST \TMP\%0.SYS GOTO SKIP
ECHO Letzer Programmstart:
TYPE \TMP\%0.sys
:SKIP
DATUM >\TMP\%0.sys
REM Hier den Aufruf eines beliebigen Programms einfügen...

Der Parameter %0 enthält den Namen des Stapeljobs selbst. Die Verwendung dieses Parameters verringert automatisch die Verwechslungsgefahr mit eventuell anderen Stapeljobs, die ebenfalls den letzten Aufruf in einer temporären SYS-Datei festhalten. Allerdings dürfen Sie dann die Batchdatei nie mit Laufwerksbuchstaben, Pfadangabe und Erweiterung aufrufen. Die obige Stapeldatei benötigen Sie natürlich einmal für jedes zu überwachende Programm. Sie sollten daher den Text » %0 « der Stapeldatei besser durch den wirklichen Programmnamen ersetzen. Der Ordnung halber sollten Sie sich auch das Directory »\TMP« anlegen, damit temporäre Dateien genau wie im Beispiel-Programm dort gesammelt werden können.

Name: DATUM.DEB
Funktion: Zeigt das aktuelle Systemdatum an.
Übersetzung: DEBUG <DATUM.DEB
Prüfsumme: 351C
Anwendung: DATUM
Einschränkungen: ./.
A
MOV AH,2A           ;100
INT 21              ;102
MOV DI,149          ;104
INC DI              ;107
CMP By[DI-1],24     ;108
JNZ 107             ;10C
DEC AL              ;10E
JNS 107             ;110
MOV SI,141          ;112
MOV AL,DL           ;115
CALL 135            ;117
MOV AL,DH           ;11A
CALL 135            ;11C
SUB CX,76C          ;11F
MOV AL,CL           ;123
CALL 135            ;125
MOV DX,DI           ;128
CALL 130            ;12A
MOV DX,13F          ;12D
MOV AH,9            ;130
INT 21              ;132
RET                 ;134
AAM                 ;135
XCHG AL,AH          ;137
ADD [SI],AX         ;139
ADD SI,3            ;13B
RET                 ;13E
DB ", 00.00.00$"
DB "Sonntag$Montag$"
DB "Dienstag$Mittwoch$"
DB "Donnerstag$"
DB "Freitag$Samstag$"

RCX
86
NDATUM.COM
W
Q

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

P.S. Frank Kwirandt hat nach der Jahrtausendwende einen Fehler gefunden und korrigiert: In der Zeile 29 muss es anstelle von DB “, 00.00.00$” korrekt DB “, 00.00.&0$” heißen.