Datumformat in Batchdatei

Hallo,

ich möchte in einer Batchdatei ein Verzeichnis mit dem aktuellen Datum erzeugen.
Dies funktioniert theoretisch auch über:
md %date%
Leider kommt da ein Datumsformat in der Form „Mo 24.11.2003“ heraus. Ich würde aber lieber das Format „20031124“ erzeugt bekommen. An den Ländereinstellungen (Zahlen/Datumsformat) will und darf ich nicht drehen.
Gibt es einen Workaround, ausser den String komplett auseinanderzunehmen?

Danke,
Christian

Hi Christian,

auf der Befehlsebene im DOS-Batch stehen keinerlei Formatierungen zur Verfügung, weil nicht zwischen Wert und Darstellung unterschieden wird. Hier hilft nur Fummeln.

Gruß Ralf

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

Gibt es einen Workaround, ausser den String komplett
auseinanderzunehmen?

mhh, ich würde einfach einen eigenen, maßgeschneiderten „MakeDir“-Befehl schreiben, z. B. in FreePascal. Diese Aufgabe wäre für jeden halbwegs fitten Pascal-Programmierer ein Klacks, weil in einer Programmiersprache mächtige und bequem handhabbare Funktionen zum Auseinandernehmen des Datumsstrings bereitstehen. Was in einer Batch-Datei ein ziemlicher Act werden würde, wäre im Quellcode eines Programms mit ein paar simplen Zeilen erledigt.

Gruß
Martin

Hallo Christian,

ich möchte in einer Batchdatei ein Verzeichnis mit dem
aktuellen Datum erzeugen.

Toll, dass bei Dir mit

md %date%

überhaupt etwas herauskommt - oder doch nicht?
Als Umgebungsvariable müsste dazu DATE mit dem SET-Befehl (im DOS-Fenster) angezeigt werden…?!

Ein Tool zur Problemlösung an Dateien (!) findest Du mit DATEFILE bei http://www.uwe-sieber.de/util.html – es aber direkt auch auf Ordner anwendbar ist, weiss ich nicht. Eventuell hilft ein Kunstgriff.

CU DannyFox64

das ist doch ganz einfach:

MD %date:~9,4%%date:~6,2%%date:~3,2%

Schau Dir mal die Hilfe zum SET-Befehl an

SET /?

Mittels SET kann mal Teilzeichenketten rausschneiden, rechnen und sogar Text in Umgebungsvariablen ersetzen

Gruß
Sutti

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Lieber Christian,
aber vor allem: Lieber Sutti!

Würdet Ihr freundlicherweise mal posten mit welchen Betriebssystemen Ihr arbeitet?

Win2000 zum Beispiel kennt immens mehr an „Batch-Tricks“ als z.B. Win98/ME/NT… So sind mir Sutti’s Aussagen irgendwie suspekt - zumindest für Win98. Ich kann da gar nix nachvollziehen.

Könnte aber auch sein, dass wer eine schlaue BS-Erweiterung hat?

So also: mit welchen „Voraussetzungen“ arbeitet ihr…?

CU DannyFox64

Hallo Dannyfox,

ich habe das gerade mal versucht und auch bei mir geht’s. Ich habe ein w2k SP3 ohne jede weitere Änderung im OS zu laufen.

Cool, wusste ich bisher auch noch nicht.

MfG. Günther (der noch mit MS-DOS 5.0 laufen lernte)

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

merci, das ist genau das, was ich gesucht habe …

Danke, Günther!

ich habe das gerade mal versucht und auch bei mir geht’s. Ich
habe ein w2k SP3 ohne jede weitere Änderung im OS zu laufen.

Cool, wusste ich bisher auch noch nicht.

Ja, sowas ist echt cool.
Schade eigentlich, weil, ich glaube, ich bleibe bei W98 wegen anderer Vorteile.

MfG. Günther (der noch mit MS-DOS 5.0 laufen lernte)

Ich habe sogar mit MS-DOS 4.01 angefangen, was eigentlich eher ein zufälliges Glück was, weil die 4.00er Version noch so einige Neuerungen und damit auch einige Schwierigkeiten hatte.

Es grüsst…
DannyFox64

PS: Nur noch 11 Fensterchen aufmachen (und das von heute :wink: )

ab Windows 2000 oder neuer

Voher gibt’s leider etliche der jetzt hilfreichen Befehlserweiterungen noch nicht. Es gibt eigentlich fast nichts, was ich nicht mittels einem Dos-Script lösen kann. Bin da sehr fit, wenn nicht so zu sagen ein Profi.

Sutti

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

ich möchte in einer Batchdatei ein Verzeichnis mit dem
aktuellen Datum erzeugen.
Dies funktioniert theoretisch auch über:
md %date%
Leider kommt da ein Datumsformat in der Form „Mo 24.11.2003“
heraus.

Wenn es den unbedingt ein Batch sein soll, sieht mir das nach einem Fall für 4DOS/4NT/Takecommand aus, siehe www.jpsoft.com. Leider ist nur eine 30-Tage-Version umsonst. Da gibt es Funktionen wie

Dates and times 
 \_date \* Current date 
 \_day Current day of the month 
 \_dow Current day of the week, English, short 
 \_dowf Current day of the week, English, full 
 \_dowi Current day of the week as an integer 
 \_doy Current day of the year 
 \_hour Current hour 
 \_idow (4NT, TC) Current day of the week, local language, short 
 \_idowf (4NT, TC) Current day of the week, local language, full 
 \_isodate Current date in ISO 9601 format (YYYY-MM-DD)
 \_minute Current minute 
 \_month Current month of the year 
 \_second Current second 
 \_time \* Current time 
 \_year Current year 

Hallo,

Tach auch,

ich möchte in einer Batchdatei ein Verzeichnis mit dem
aktuellen Datum erzeugen.

ich wuerde mir an deiner Stelle mal die Cygwin-Tools (bekommst du bei http://www.cygwin.com) installieren. Dann hast du genau fuer solche Faelle eine UNIX-aehnliche Umgebung, bei der dann (z.B. unter der bash) so schicke Kommandos wie

mkdir $(date +"BACKUP%Y%m%d%")

funktionieren (erstellt ein Verzeichnis mit dem Namen BACKUP).

Probiers aus, es ist einfach Klasse (und es gibt dort wirklich ein paar supertolle Sachen - z.B. find, grep, perl, bash, eine richtige X-Umgebung, usw. usw.).

Gruss
bernhard