Bei Dateisicherungen per Skript / Batch ist es praktisch, das aktuelle Datum und Uhrzeit in Batch-Dateien verwenden zu können.
- Die 08/15 Ausgabe besteht aus dem Inhalt der beiden Umgebungsvariablen %TIME% %DATE%
…. da sind Doppelpunkte drin, die darf es in Dateinamen nicht geben.
- Getrennte Ausgabe von Tag, Monat, Jahr, Stunde, Minute und Sekunde
Windows kann die Ausgabe von Umgebungsvariablen formatieren.
Das können wir nutzen, um die Ausgabe von %TIME%
und %DATE%
in ihre Einzelteile zu zerlegen:
- Jahr: %date:~-4%
- Monat: %date:~-7,2%
- Tag: %date:~-10,2%
- Stunden: %time:~-11,2%
- Minuten: %time:~-8,2%
- Sekunden: %time:~-5,2%
Das gibt uns Datum und Uhrzeit in einer Verzeichnis- und Dateinamen kompatiblen Version aus.
%date:~-4%-%date:~-7,2%-%date:~-10,2%---%time:~-11,2%-%time:~-8,2%-%time:~-5,2%
Damit erstellen wir uns ein Verzeichnis:
mkdir %date:~-4%-%date:~-7,2%-%date:~-10,2%---%time:~-11,2%-%time:~-8,2%-%time:~-5,2%
Fehler durch Leerzeichen
Die Uhrzeit oder das Datum ist bei den Zahlen von 1 bis 9 nur einstellig.
Wir bekommen also ein
echo ##%TIME%## ## 9:45:35,88##
und damit auch ein
echo =>%time:~-11,2%-%time:~-8,2%-%time:~-5,2%<= ## 9-45-35##
Nun haben wir plötzlich Leerzeichen in den Dateinamen.
Lösung: Aus allen Leerzeichen hinterher 0 – machen:
set TEST=%date:~-4%-%date:~-7,2%-%date:~-10,2%-%time:~-11,2%-%time:~-8,2%-%time:~-5,2% echo ##%TEST%## setlocal enabledelayedexpansion set TEST=!TEST:^ =0! setlocal disabledelayedexpansion echo ##%TEST%##
Ausgabe:
##2012-05-12- 1-47-00## ##2012-05-12-01-47-00##