Butschek.de

Warnung: Diese Seite ist eine statische Kopie eines früher betriebenen Blogs. Es findet keine Aktualisierung mehr statt. Kommentare und die Suche funktionieren nicht.

Linux, Server & Co

ISO-Datum in Windows Batch-Files

4 comments

Wer unter Windows mit Batch-Files Scriptet, dürfte die Variablen %time% und %DATE% kennen, die die Uhrzeit sowie das aktuelle Datum im lokalen Format „dd.mm.yyyy“ zurückgeben.

Manchmal möchte man Dateien oder Verzeichnisse nach dem aktuellen Datum benennen, z.B. Logfiles, Zip-Dateien oder ein Backup-Verzeichnis für das tägliche Backup.

set dirname="C:Backup-%DATE%"
mkdir %dirname%

Einen großen Nachteil hat dieser Weg: Beim alphabetischen Anordnen im Windows-Explorer ist der 20. Mai vor dem 31. Januar. Der einfachte Weg ist die Verwendung des ISO-Formats JJJJ-MM-TT, also zuerst Jahr, dann Monat, dann Tag. So wird immer erst nach dem Größten (Jahr), zum Ende nach dem Kleinsten (Tag) sortiert.

Leider bietet die Windows Commandline ein solches Format nicht an, das läßt sich aber leicht korrigieren: Wir nehmen einfach aus %DATE% die nötigen Stellen heraus und basteln ein eigenes Format:

set TAG=%date:~-10,2%
set MONAT=%date:~-7,2%
set JAHR=%date:~-4%
set ISODATE=%JAHR%-%MONAT%-%TAG%

Fertig ist unser neues Datum %ISODATE%, das wir nun statt %DATE% verwenden:

set dirname="C:Backup-%ISODATE%"
mkdir %dirname%

Written by Michael Butschek

Juni 3rd, 2010 at 10:52 pm

Posted in IT

Tagged with , ,