In einer Batchdatei muss ich einen Monat, einen Tag und ein Jahr aus dem Datumsbefehl extrahieren. Daher habe ich Folgendes verwendet, das den Date-Befehl im Wesentlichen analysiert, um seine Unterzeichenfolgen in eine Variable zu extrahieren:
set Day=%Date:~3,2%
set Mth=%Date:~0,2%
set Yr=%Date:~6,4%
Das ist alles großartig, aber wenn ich diese Batchdatei auf einem Computer mit anderen regionalen / Ländereinstellungen bereitstelle, schlägt dies fehl, da sich Monat, Tag und Jahr an verschiedenen Orten befinden.
Wie kann ich Monat, Tag und Jahr unabhängig vom Datumsformat extrahieren?
windows-7
windows-xp
batch
date
AngryHacker
quelle
quelle
Antworten:
Quelle: http://ss64.com/nt/syntax-getdate.html
Methode 2 (einzelnes cmd)
GetDate.cmd
Methode 1 (cmd + vb)
GetDate.cmd
getdate.vbs
quelle
Set _second=00%%K
beim Extrahieren vonwmic
und Auffüllen mit führenden Nullen hinzu.Windows XP und höher
getDate.cmd
Ausgabe
quelle
ECHO %year%-%month%-%day%
welchem ISO- und Dateisystem-kompatiblen Format zu enden (ganz zu schweigen von der automatischen Sortierung nach Jahr-Monat-Tag). :-).Ich weiß, es ist nicht genau das, wonach Sie gefragt haben, aber ich verwende den Windows-Port der Linux-
date
Anwendung über einen Befehl in der Batch-Datei und ordne das Ergebnis einer Variablen zu.Ich habe noch keine Möglichkeit gefunden, das Datum nur mit Batch-Befehlen zuverlässig zu ermitteln.
quelle
Verwenden Sie diese Batchdatei für das Format JJJJ-MM-TT. Es verwendet das Fensterinstrumentationstool, das in allen neueren Windows-Versionen vorhanden sein sollte, um eine Datums- / Uhrzeitzeichenfolge abzurufen, die von den regionalen Einstellungen unabhängig ist.
Speichern Sie in einer Batch-Datei den Pfad (z. B.) c: \ windows \ rdate.bat und greifen Sie dann mit CALL RDATE.BAT auf die Variable (n) zu. Kopieren Sie alternativ den Code in Ihre Batch-Datei.
Dieses Datumsformat eignet sich für Dateinamen und Protokollierung. Es sortiert richtig. Die Variable logtime fügt eine Datums- und Zeitvariable als JJJJ-MM-TT-HHMMSS hinzu, die zur sekundengenauen Protokollierung von Batch-Datei-Aktivitäten geeignet ist.
Passen Sie die Datums- (und Uhrzeit-) Formate nach Ihren Wünschen an. REM das Bildschirmecho in der Produktion. Die beiden Zahlen in jeder Textauswahl sind der auf Null basierende Startzeichenindex und die Anzahl der zu kopierenden Zeichen, z. B.% datetime: ~ 0,4% nimmt eine Teilzeichenfolge mit 4 Zeichen ab Position 0 an.
quelle
wmic os get localdatetime
Sie haben Recht, dass VS 2008 eine Batchdatei ausgibt, aber Sie können so ziemlich jedes gewünschte Programm ausführen, einschließlich Powershell-Skripts und anderer Programme.
Bearbeiten:
Hier sind einige ähnliche Fragen:
/programming/1051845/visual-studio-2008-professional-build-process /programming/3049369/embed-application-compilation-time-stamp
Ursprünglich wollte ich dies auf SO verlagern lassen. . .
quelle
Haben Sie versucht,
NET TIME \\%ComputerName%
statt zu verwendenDATE
? Ich denke,NET TIME
das soll die Daten in einem einheitlichen Format unabhängig vom Gebietsschema bereitstellen.quelle
net time
gewechselt und immer im Format M / T / JJJJ ausgegeben. @AngryHacker, mit welchen Einstellungen hat es bei dir nicht geklappt?Dank Shekhars Post funktioniert dies nach Bedarf und ohne Auffüllen der Zeit.
Ausgabe: LogFile-20151113-0901.txt
quelle
Dies mag ein wenig vom Thema abweichen, aber hier ist eine .bat-Datei, die ich für meine eigenen geplanten Sicherungen und auch für Aufrufe von Postbuild-Aktionen in Visual Studio geschrieben habe. Ich hoffe, dass einige es nützlich finden.
Speichern Sie Folgendes in eine .bat-Datei
quelle
%date%
und%time%
, die für das Gebietsschema relevant sind und nicht wirklich vorhersehbar analysiert werden können, wie vom OP gefordert.