Es gibt etliche Anwendungen, in denen man eine Datei oder ein Verzeichnis mit dem aktuellen Datum erstellen muss. Je nach Ländereinstellung wird das Datum jedoch unterschiedlich ausgegeben und vermutlich nicht in der Reihenfolgen, wie man es gerade braucht.
Für die chronologische Sortierung sollte ein Datum am Besten in dre Reihenfolge Jahr-Monat-Tag(-Stunden-Minuten-Sekunden) dargestellt werden.
Gibt man (bei Ländereinstellung DE) in der Konsole „echo %date%“ und „echo %time% ein, werden die Systemvariablen für das Datum und die Uhrzeit ausgegeben.
1 2 3 4 |
echo %date% 19.04.2015 echo %time% 14:39:33,69 |
In Windows kann man Strings mit der Angabe von den gewünschten Stellen nach ein „:~“ beeinflusst werden.
Gibt man nur eine Zahl an, wird ab dieser Stelle im String die Ausgabe begonnen.
1 2 |
echo %date:~2% .04.2015 |
Gibt man, durch ein Komma getrennt, eine zweite Zahl an, begrenzt es die Anzahl der ausgegebenen Stellen.
1 2 |
echo %date:~2,3% .04 |
Möchte man am String-Anfang beginnen, so kann man entweder eine 0 voranstellen oder eine keine Angabe vor dem Komma machen.
1 2 3 4 |
echo %date:~0,2% 19 echo %date:~,2% 19 |
Ich formartiere jetzt das Datum in der Reihenfolge Jahr-Monat-Tag. Zuerst mal ein Beispiel mit der Angabe der Stellen
1 2 |
19.04.2015 1234567890 |
Möchte man das Jahr mit 2 Stellen, so beginnt man mit dem Auslesen des Strings ab (nach) der 8. Stelle für 2 Stellen.
1 2 |
echo %date:~8,2% 15 |
Das Monat beginnt nach der 3. Stelle, der Tag steht am Beginn des originalen „date“-Strings. Die Ausgabe kann man einfach an den Echo-Befehl anfügen:
1 2 |
echo %date:~8,2%%date:~3,2%%date:~0,2% 150419 |
Das ganze könnte in einem Batch-Befehl so ausehen.
1 2 3 |
@echo off set datum=%date:~8,2%%date:~3,2%%date:~0,2% echo %datum% |
Anstatt „echo“ kann dieser String natürlich auch für jeden anderen Befehl, wie z.B.: „mkdir“ verwendet werden.
Analog kann man das auch für die Ausgabe der Systemvariable %time% verwendet werden.
Viel Spaß beim ausprobieren.