Professionelle Programmierer, die fortlaufend neue Versionen ihrer Produkte kreieren, wollen ein Utility nicht missen, das in der Unix-Welt zum Standard zählt, unter DOS jedoch nur bei einigen wenigen Compilern zum Lieferumfang gehört: TOUCH. Das Kommando setzt das Datum und die Uhrzeit des letzten Schreibzugriffs von beliebigen Dateien auf die aktuelle Systemzeit, was vor allem dann wichtig ist, wenn eigentlich unveränderte Programme neu compiliert werden müssen. Der Entwicklungsumgebung wird eine Änderung vorgegaukelt – ein sogenanntes »Make«-Utility kann in Aktion treten.
TOUCH.BAT tätigt ohne besondere Hilfsmittel diese Zugriffsänderung. Der Stapeljob verknüpft die Dateien, die der Spezifikation im übergebenen Parameter entsprechen, im Binärformat per »COPY + « mit der Nulleinheit NUL, also einer Leerdatei, und kopiert sie wieder auf sich selbst zurück. Die Kombination des COPY-Befehls mit dem Pluszeichen ändert nämlich im Gegensatz zu allen anderen COPY-Varianten das Datum und die Uhrzeit einer Datei.
Name: | TOUCH.BAT |
Funktion: | Setzt Datum und Uhrzeit einer Datei auf die aktuelle Systemzeit. |
Übersetzung: | ./. |
Anwendung: | TOUCH Datei (Wildcards erlaubt) |
Einschränkungen: | TOUCH verwendet die Systemzeit des PCs, die entsprechend aktualisiert sein muß. |
@ECHO OFF FOR %%X IN (%1) DO COPY %%X /B + NUL /A %%X /B >NUL
Wenn Sie – wie unter Profis üblich – z.B. die Uhrzeit einer Datei als Hinweis auf die Programmversion verwenden wollen, hilft FILETIME.DEB weiter. Das Programm setzt im Unterschied zu TOUCH.DEB das Datum und die Uhrzeit einer Datei auf einen durch Sie bestimmten Wert. Obwohl sich das gleiche zwar über einen kleinen Umweg auch mit den DOS-internen TIME- und DATE-Befehlen und mit TOUCH realisieren ließe, wollen wir Ihnen diese Alternative nicht vorenthalten – zumal sich die Uhrzeit mit TIME aufgrund der Laufzeit von TOUCH.BAT nicht exakt einstellen lassen würde. FILETIME.DEB wertet die für ein kurzes DEBUG-Listing »unzähligen« Parameter aus und ändert Zugriffszeit und Zugriffsdatum der angegebenen Datei via DOS-Funktion auf die gewünschten Werte. Tritt ein Fehler auf, bricht das Programm mit einer kurzen Fehlermeldung ab. Achten Sie bei der Eingabe der Parameter unbedingt darauf, daß Sie kein Leerzeichen zuviel eingeben und keine Parameter vergessen. Was Sie als Trennzeichen zwischen den Werten verwenden, bleibt Ihnen überlassen – Ziffern sollten Sie natürlich vermeiden.
Und noch ein Tip: Wenn Sie die Uhrzeit auf 0:00 Uhr setzen, verschwindet im Inhaltsverzeichnis das Uhrzeitfeld komplett. Für Mitternacht müssen Sie deshalb 24:00 verwenden. Ebenso verschwinden das Datumsfeld und (!) die Uhrzeit, wenn Sie das Datumsfeld auf den Wert Null setzen– aufgrund des internen Datumsformates von DOS entspricht dieser Fall dem 1.1.80.
Name: | FILETIME.DEB |
Funktion: | Setzt Datum und Uhrzeit einer Datei auf einen beliebigen Wert. |
Übersetzung: | DEBUG <FILETIME.DEB |
Prüfsumme: | 7264 |
Anwendung: | FILETIME Datei t.m.j/s:mit = Tag (0…31) m = Monat (0…12) j = Jahr (ohne Jahrtausend: 80..99) s = Stunde (0..24) mi = Minute (0..59)
z. B. FILETIME \COMMAND.COM 9.9.99/3:30 |
Einschränkungen: | Die Parameter müssen genau in dieser Reihenfolge vollständig eingegeben werden. |
A MOV SI,82 ;100 MOV DX,SI ;103 CLD ;105 LODSB ;106 CMP AL,20 ;107 JNZ 106 ;109 MOV By[SI-1],0 ;10B MOV AX,3D00 ;10F CALL 142 ;112 MOV BX,AX ;115 MOV CL,8 ;117 CALL 14F ;119 MOV DX,AX ;11C MOV CL,D ;11E CALL 14F ;120 OR DX,AX ;123 MOV CL,1 ;125 CALL 14F ;127 SUB AH,A0 ;12A OR DX,AX ;12D MOV CL,3 ;12F CALL 14F ;131 MOV DI,AX ;134 MOV CL,D ;136 CALL 14F ;138 MOV CX,AX ;13B OR CX,DI ;13D MOV AX,5701 ;13F INT 21 ;142 JNB 162 ;144 MOV DX,163 ;146 MOV AH,9 ;149 INT 21 ;14B INT 20 ;14D XOR AX,AX ;14F AAD ;151 MOV AH,AL ;153 LODSB ;155 CMP AL,39 ;156 JA 15E ;158 SUB AL,30 ;15A JNB 151 ;15C MOV AL,0 ;15E ROL AX,CL ;160 RET ;162 DB "Error$" RCX 69 NFILETIME.COM W Q
Quelle: 200 Utilities für PC-/MS-DOS von Gerhard Schild und Thomas Jannot
Dies ist eine von Unterstützern finanzierte Veröffentlichung. Um neue Beiträge zu erhalten und meine Arbeit zu fördern, werden Sie Abonnent: