Die Umgebungsvariablen %DATE%
und %TIME%
geben das aktuelle Datum und die aktuelle Uhrzeit auf Windows-Computern in der Befehlszeile und in einer Batchdatei an.
Leider sind diese Werte Gebietsschemas bewusst! Das heißt, dass Sie zum Beispiel auf einer deutschen Maschine erhalten
26.1.2011
Anstatt von
2011-26-01
Dadurch wird die Sortierung verkürzt, wenn Sie diese Variable in einem Dateinamen verwenden möchten.
Gibt es eine einfache Möglichkeit, eine YYYY-MM-DD
Datumszeichenfolge mit unbekanntem Gebietsschema in einer Windows-Batchdatei abzurufen?
Im Moment arbeite ich mit dieser ziemlich klobigen Problemumgehung:
for /f "tokens=1,2,3,4 delims=. " %%i in ('date /t') do set date=%%k-%%j-%%i
echo %date%
aber das ist jetzt deutsche länderspezifisches - offensichtlich eine völlig unabhängige Lösung wäre viel schöner.
Als Betriebssystem kommt Server 2008 in Frage. Ich würde es sehr bevorzugen, wenn überhaupt möglich, kein Drittanbieter-Tool zu verwenden.
quelle
for /f %%x in ('wmic os get localdatetime ^| findstr /b [0-9]') do @set X=%%x
ist ein kleines bisschen netter. Es gibt auch eine kompaktere Version hier , nämlich in diesem Kommentar .findstr
Lösung viel besser, da in meinem Fall das Originalfor
(ohne dasskip
) dreimal iteriert. Einmal für das Wort"LocalDateTime"
, ein zweites Mal für das aktuelle Datum und ein drittes Mal für einen leeren Wert (möglicherweise ein Zeilenumbruch?).Hier ist ein Zweisitzer, den ich verwendet habe und der unabhängig von der Windows-Version oder den lokalen Zeiteinstellungen zu funktionieren scheint:
Dadurch wird eine Variable mit dem Namen% CUR_DATE% im folgenden ISO-Standardformat festgelegt:
Ich habe versucht, es mit && einzeilig zu machen, aber es schien nicht zu dauern, also habe ich auf die zweizeilige Version zurückgegriffen. Hoffe das hilft.
quelle
Ich benutze diesen Trick, um UTC zu bekommen ..
Es hat jedoch den Nebeneffekt, dass das gesamte System kurzzeitig auf UTC umgestellt wird. Dies ist auf einer persönlichen Workstation wahrscheinlich in Ordnung, aber nicht sicher, welche Auswirkung ein großer Produktionsserver haben würde, der wahrscheinlich sowieso auf UTC eingestellt sein sollte.
quelle