DOS Batch Programmierung
Schani
- sonstiges
Hallo zusammen,
habe eine Frage für Leute die sich im DOS auskennen.
Ich will eine Datei mit der Urzeit speichern, dazu mache ich folgendes:
SET x=%time% // Bsp: x = 12:12:12,34
copy xxx.log %x%.log
Das Problem ist, DOS akzeptiert keinen Dateinamen mit Doppelpunkten, d.h. ich müsste die Doppelpunkte durch einen Buchstaben ersetzen, gibt es da in DOS irgend eine Möglichkeit dazu.
// Ergebnis sollte z.B: 12x12x12x34.log sein
Ciao
Schani
Hi there!
SET x=%time% // Bsp: x = 12:12:12,34
%time% wurde aber voher von jemand anderem gesetzt, oder?
Das Problem ist, DOS akzeptiert keinen Dateinamen mit Doppelpunkten, d.h. ich müsste die Doppelpunkte durch einen Buchstaben ersetzen, gibt es da in DOS irgend eine Möglichkeit dazu.
// Ergebnis sollte z.B: 12x12x12x34.log sein
Ich koennte mir vorstellen, dass man ueber eine abenteuerliche Konstruktion mit 'choice' zum Ziel kommt. Leider hab ich grad NT laufen, wo es scheinbar kein choice gibt, deshalb kann ich jetzt nicht nachschauen und konkreter drueber nachdenken. DOS will ich jetzt nicht extra starten. ;-)
Welche DOS-Version verwendest Du denn?
So long
Hallo,
Ich will eine Datei mit der Urzeit speichern, dazu mache ich folgendes:
SET x=%time% // Bsp: x = 12:12:12,34
copy xxx.log %x%.log
wäre es denn möglich die Uhrzeiten in einer Datei zu haben?
z.B. echo %time%>>time.log
oder wäre es möglich fortlaufende Dateien, 1., 2. usw., zu erzeugen und
damit die aktuelle Zeit der Erstellung der jeweiligen Datei zu haben?
Komfortabler Programmieren lässt sich mit 4dos wenn sowas eingesetzt werden kann.
Welche Aufgabe soll das Ganze denn überhaupt erfüllen?
Grüsse
Cyx23
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