In einer Batchdatei muss ich Monat, Tag und Jahr aus dem Datumsbefehl extrahieren. Daher habe ich Folgendes verwendet, das im Wesentlichen den Datumsbefehl 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 Regions-/Ländereinstellungen bereitstelle, schlägt dies fehl, da Monat, Tag und Jahr an verschiedenen Orten angegeben sind.
Wie kann ich Monat, Tag und Jahr unabhängig vom Datumsformat extrahieren?
Antwort1
Quelle: http://ss64.com/nt/syntax-getdate.html
Methode 2 (einzelner Befehl)
GetDate.cmd
@Echo off
:: Check WMIC is available
WMIC.EXE Alias /? >NUL 2>&1 || GOTO s_error
:: Use WMIC to retrieve date and time
FOR /F "skip=1 tokens=1-6" %%G IN ('WMIC Path Win32_LocalTime Get Day^,Hour^,Minute^,Month^,Second^,Year /Format:table') DO (
IF "%%~L"=="" goto s_done
Set _yyyy=%%L
Set _mm=00%%J
Set _dd=00%%G
Set _hour=00%%H
SET _minute=00%%I
)
:s_done
:: Pad digits with leading zeros
Set _mm=%_mm:~-2%
Set _dd=%_dd:~-2%
Set _hour=%_hour:~-2%
Set _minute=%_minute:~-2%
:: Display the date/time in ISO 8601 format:
Set _isodate=%_yyyy%-%_mm%-%_dd% %_hour%:%_minute%
Echo %_isodate%
pause
Methode 1 (cmd+vb)
GetDate.cmd
@Echo off
For /f %%G in ('cscript /nologo getdate.vbs') do set _dtm=%%G
Set _yyyy=%_dtm:~0,4%
Set _mm=%_dtm:~4,2%
Set _dd=%_dtm:~6,2%
Set _hh=%_dtm:~8,2%
Set _nn=%_dtm:~10,2%
Echo %_yyyy%-%_mm%-%_dd%T%_hh%:%_nn%
getdate.vbs
Dim dt
dt=now
'output format: yyyymmddHHnn
wscript.echo ((year(dt)*100 + month(dt))*100 + day(dt))*10000 + hour(dt)*100 + minute(dt)
Antwort2
Antwort3
Ich weiß, es ist nicht genau das, wonach Sie gefragt haben, aber ich verwende den Windows-Port der Linux- date
Anwendung aus einem Befehl innerhalb der Batchdatei und weise das Ergebnis dann einer Variablen zu.
Ich habe noch keine Möglichkeit gefunden, das Datum zuverlässig nur mit Batch-Befehlen abzurufen.
Antwort4
Sie haben zwar Recht, dass VS 2008 eine Batchdatei ausgibt, Sie können jedoch praktisch jedes gewünschte Programm ausführen, einschließlich Powershell-Skripts und anderer Programme.
Bearbeiten:
Hier sind einige ähnliche Fragen:
https://stackoverflow.com/questions/1051845/visual-studio-2008-professional-build-process https://stackoverflow.com/questions/3049369/embed-application-compilation-time-stamp
Ursprünglich wollte ich dies zu SO verschieben...