LOGGEN IN DOS MIT DATETIME.COM Eine Anwendung für DATETIME.COM von Elmar Hanlhofer ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Das kleine DOS-Programm DATETIME.COM kann folgendes ausgeben - entweder auf den Schirm oder in eine Datei: datetime [string] output of date and time + string !d day number !D Weekday short !E Weekday long !m month number !b month name short !B month name long !y year 2digits !Y year 4digits !H hour !M minute !S second !h hundrets of second !+d[value] add days !-d[value] sub days !+m[value] add months !-m[value] sub months !r return !n new line !! print ! !lde german output (default is english) for microsoft style use !r!n for return, for unix style use !n only Example 1: datetime Today is !D !d/!m/!y Time: !H:!M output is: Today is Sun 27/10/02 Time: 16:00 write into a file: datetime !d/!m/!y > date.txt Example 2: datetime Yesterday was !D !d/!m/!y!-d1, a nice day ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Die Eingabe in DOS: datetime !H:!M > LOGTEST.TXT [oder eine entsprechende Zeile in einer Batch-Datei] Erstellt eine Logdatei namens "LOGTEST.TXT" mit dem Eintrag der aktuellen Zeit im Format '16:00' Jeder weitere Aufruf dieses Befehls würde allerdings lediglich die Angabe in dieser Datei auf mit '16:01' '16:02' '16:03' etc. überschreiben. ---- Zum Loggen muß die Zeit nicht überschrieben, sondern ergänzt werden. Dazu dient der Befehl ">>" statt ">" Die Anweisung datetime !H:!M >> LOGTEST.TXT Ergibt tatsächlich 16:01 16:02 16:03 - jedoch noch ohne Zeilenumbruch. ---- Dieses Manko behebt eine Batch-Anweisung mit den folgenden Zeilen: (Der Verzeichnispfad C:\... kann ggf. entfallen) ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ datetime Log Eintrag !d/!m/!y >> C:\LOGTEST.TXT echo. >> C:\LOGTEST.TXT datetime !H:!M >> C:\LOGTEST.TXT echo. >> C:\LOGTEST.TXT cls ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Wobei der Punkt den Zeilenumbruch ergibt. Die Ausgabe lautet: Log Eintrag Datum 15:41 Jeder neue Eintrag wird darunter gesetzt. Eine zweite Batch-Anweisung mit folgenden Zeilen schließt den Eintrag ab: ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ datetime Log Ende !d/!m/!y >> C:\LOGTEST.TXT echo. >> C:\LOGTEST.TXT datetime !H:!M >> C:\LOGTEST.TXT echo. >> C:\LOGTEST.TXT echo. >> C:\LOGTEST.TXT cls ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Die Ausgabe lautet nun: Log Eintrag Datum 15:41 Log Ende Datum 16:45 ---- Werden beide Batch-Anweisungen alternierend eingesetzt, wird jeder Logeintrag mit einer Zeile Abstand unter den vorherigen gesetzt. > Darauf achten, daß der Befehl "cls" wirklich die letzte Zeile der Batch-Datei ist - ohne weitere Leerzeile. Die Ansprache der Batch-Dateien kann automatisiert erfolgen, beispielsweise durch eine Verknüpfung im Autostart-Ordner. Setzt man in der Verknüpfung in "Eigenschaften/Programm" "Ausführen" auf "minimiert", dann geschieht der Eintrag unbemerkt. Die so erstellte Log-Datei läßt sich beispielsweise in EXCEL öffnen und auswerten, indem man die beiden Zeiten voneinander abziehen läßt - und zwar NUR die Zeit-Einträge. Dazu in Excel die Datei bereinigen und auf gleichmäßigen Abstand bringen, die mit Text-Einträgen gefüllten Felder NICHT mit einer Formel belegen, den ersten Block markieren und mit dem Plus- Zeichen auf die erforderliche Zeilenlänge ziehen. [Oder die > Hier beigefügte Excel-Datei benutzen: Ein Satz Dateien zur Batch-Log-Erstellung befindet sich als "DOS-Logs.zip" im Archiv "Dos- Exen.zip" im Freeware-Bereich] Excel gibt dann die jeweilige Zeitdifferenz korrekt aus (bei Zeiten, die über 12:00 / 24:00 hinaus geführt werden, zur Berechnung die End- Stunden um 12 bzw. 24 erhöhen). Und besten Dank an Alle, die hier Vorarbeit geleistet haben.