Update: Jetzt, da es 2016 ist, würde ich PowerShell dafür verwenden, es sei denn, es gibt einen wirklich überzeugenden abwärtskompatiblen Grund dafür, insbesondere aufgrund des Problems der regionalen Einstellungen bei der Verwendung date
. Siehe @ npocmakas https://stackoverflow.com/a/19799236/8479
Mit welchen Windows-Befehlszeilenanweisungen kann ich die aktuelle Datums- und Uhrzeitangabe in einem Format abrufen, das ich in einen Dateinamen einfügen kann?
Ich möchte eine .bat-Datei haben, die beispielsweise ein Verzeichnis in ein Archiv mit dem aktuellen Datum und der aktuellen Uhrzeit als Teil des Namens komprimiert Code_2008-10-14_2257.zip
. Gibt es eine einfache Möglichkeit, dies unabhängig von den regionalen Einstellungen der Maschine zu tun?
Das Datumsformat macht mir nichts aus, im Idealfall wäre es JJJJ-MM-TT, aber alles Einfache ist in Ordnung.
Bisher habe ich das, was mir auf meiner Maschine gibt 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
Ich kann damit leben, aber es scheint ein bisschen klobig. Im Idealfall wäre es kürzer und hätte das zuvor 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 mir klar ist, dass es einige gibt, die eine gute Datumsformatierung ermöglichen).
[datetime]::now.tostring("yyyy-MM-dd")