So erhalten Sie einen UNIVERSAL-Windows-Batchdatei-Zeitstempel

8

Ich habe Probleme beim Generieren eines Zeitstempels in einer Windows-Stapeldatei, da ich unterschiedliche Datumsformate in verschiedenen Windows-Versionen erhalte.

Mein Gerät:

%Vor%

Freunde Maschine:

%Vor%

Ich denke, es muss eine Möglichkeit geben, das Datum (17.11.2009) aus beiden Strings mit for / f zu erhalten. Ich habe versucht und gegoogelt und kann die Antwort nicht finden.

Gibt es eine andere Möglichkeit, einen Zeitstempel ohne% date% zu erhalten?

    
eliocs 17.11.2009, 09:00
quelle

5 Antworten

2

Verwenden Sie VBScript , wenn Sie unabhängige Einstellungen für die Datumseinstellung erhalten möchten:

%Vor%     
ghostdog74 17.11.2009, 09:15
quelle
4

Sehen Sie sich doff.exe an. Ich benutze das viel um Zeitstempel für die Benennung von Protokolldateien zu bekommen. Von seiner Website:

  

DOFF druckt ein formatiertes Datum und eine formatierte Uhrzeit mit einem optionalen Datumsoffset (z. B. -1 druckt das Datum von gestern, +1 druckt das Datum von morgen). Um alle verfügbaren Optionen anzuzeigen, führen Sie "doff -h" aus. Ich verwende dieses Dienstprogramm normalerweise zum Umbenennen von Protokolldateien, so dass sie einen Zeitstempel enthalten (siehe drittes Beispiel). Dieser Code sollte sowohl unter Unix / Linux als auch unter DOS kompiliert werden.

     

Beispielbefehle:

%Vor%
  

Ohne Parameter ist die Ausgabe das aktuelle Datum / die aktuelle Uhrzeit im folgenden Format: yyyymmddhhmiss

%Vor%
  

Im obigen Beispiel ist eine Datumsformatspezifikation angegeben.

%Vor%
  

Die obige Beispielbatchdatei zeigt eine einfache Möglichkeit, eine Protokolldatei basierend auf dem gestrigen Datum umzubenennen. Der Befehl "for" führt doff aus, um das gestrige Datum zu drucken (der Parameter "-1" gibt gestern an) und extrahiert dann jede Komponente des Datums in DOS-Batchdateivariablen. Der Befehl "rename" benennt "httpd-access.log" in "httpd-access- [Datum des gestrigen Tages] .log"

um

Überprüfen Sie auch Microsoft's now.exe, verfügbar in der Windows Server 2003 Resource Kit-Tools . Eine schlechte Sache, die ich (auf die harte Tour) darüber herausgefunden habe, ist, dass ERRORLEVEL auf die Anzahl der gedruckten Zeichen gesetzt wird.

Sieht so aus:

%Vor%

Hilfe:

%Vor%     
D Rickard 19.05.2011 21:38
quelle
1

Leider kann es nicht direkt gemacht werden, also müssen Sie auf Hacks wie GetDate.cmd .

Es gibt viele VBScript- und kleine externe Kommandozeilen-Tools, die ich nicht verwenden würde, wenn Sie nicht bereits etwas in Ihrem Gesamtsystem verwenden.

Ich würde persönlich versuchen, es zu umgehen, indem ich die PowerShell verwende, die das Problem vollständig umgeht.

    
Ruben Bartelink 17.11.2009 09:02
quelle
0

Sie benötigen kein VBScript. Sie können es mit so etwas tun:

%Vor%

Source

    
Darren 28.07.2010 14:04
quelle
0

Wie ich hier gepostet habe: Batch: Zeitstempel auf UNIX-Zeit

Was ist mit einem einfachen 1-zeiligen langen C-Programm, das den UNIX-Zeitstempel zurückgibt? Sie können den Wert von% errorlevel% im Batch-Skript abrufen.

%Vor%

In meinem Test in der Eingabeaufforderung hat es funktioniert:

%Vor%     
damian1baran 26.12.2014 16:11
quelle

Tags und Links