Frank Bergermann: DOS Batch Programmierung

Beitrag lesen

echo %time%>time.log mit nur einem ">", sonst wird die Datei immer länger (wegen Anhängen).

Folgendes benötigt qbasic.exe (aus MSDOS6):
zuerst wird %time% in time.log gespeichert, die wird dann ausgelesen
dabei werden zuerst alle nicht-Zahlen in %time% überlesen
danach werden nicht-Zahlen durch "_" ersetzt
zum Schluß werden die 2 DOS-Zeilenumbruchzeichen abgeschnitten
(die ja auch durch "_" ersetzt wurden)
dann wird timeset.bat erstellt, die dann die set-Variable x erzeugt.

Inhalt von formtime.bas (erstellt Datei timeset.bat):
t$ = ""
a$ = ""
n = 0
OPEN "time.log" FOR INPUT AS #1
WHILE NOT EOF(1)
  x$ = INPUT$(1, 1)
  a$ = x$
  IF x$ < "0" OR x$ > "9" THEN
    IF n = 0 THEN x$ = "" ELSE x$ = "_"
  ELSE
    n = 1
  END IF
  t$ = t$ + x$
WEND
CLOSE
t$ = LEFT$(t$, LEN(t$) - 2)     '2 ersetzte Zeilenumbruchzeichen abschneiden
OPEN "timeset.bat" FOR OUTPUT AS #1
PRINT #1, "set x=" + t$      ' + RIGHT$(a$, 2)
CLOSE
SYSTEM

Inhalt von erstelle.bat:
@echo off
echo %time%>time.log
qbasic.exe /run formtime.bas
timeset.bat
copy xxx.log %x%.log

Aufruf mit: erstelle.bat