Update: Jetzt, wo es 2016 ist, würde ich PowerShell dafür verwenden, es sei denn, es gibt einen wirklich zwingenden, abwärtskompatiblen Grund dafür, insbesondere wegen des Problems mit den regionalen Einstellungen bei Verwendung von date
. Siehe @npocmaka's https://stackoverflow.com/a/19799236/8479
Welche Windows-Befehlszeilenanweisung(en) kann ich verwenden, um die aktuelle Datumszeit in einem Format zu erhalten, das ich in einen Dateinamen einfügen kann?
Ich möchte eine .bat-Datei haben, die ein Verzeichnis in ein Archiv mit dem aktuellen Datum und der Uhrzeit als Teil des Namens zippt, zum Beispiel, Code_2008-10-14_2257.zip
. Gibt es eine einfache Möglichkeit, dies zu tun, unabhängig von den regionalen Einstellungen des Geräts?
Das Datumsformat ist mir eigentlich egal, idealerweise wäre es jjjj-mm-tt, aber auch ein einfaches Format ist in Ordnung.
Bislang habe ich folgendes Ergebnis, das auf meinem Rechner Tue_10_14_2008_230050_91
:
rem Get the datetime in a format that can go in a filename.
set _my_datetime=%date%_%time%
set _my_datetime=%_my_datetime: =_%
set _my_datetime=%_my_datetime::=%
set _my_datetime=%_my_datetime:/=_%
set _my_datetime=%_my_datetime:.=_%
rem Now use the timestamp by in a new ZIP file name.
"d:\Program Files\7-Zip\7z.exe" a -r Code_%_my_datetime%.zip Code
Damit kann ich leben, aber es wirkt ein wenig klobig. Im Idealfall wäre es kürzer und hätte das bereits erwähnte Format.
Ich verwende Windows Server 2003 und Windows XP Professional. Ich möchte keine zusätzlichen Dienstprogramme installieren, um dies zu erreichen (obwohl ich weiß, dass es einige gibt, die eine schöne Datumsformatierung vornehmen können).