Datum in einem bestimmten Format erstellen
Brauche wieder Hilfe!
Hallo Experten!
ich habe ein Problem.
Bei uns auf dem Server werden die Daten jede Nacht in bestimmte Ordner verschoben, der Ordnername sieht z.B so aus: 2011-8-12.
Ich habe eine Batch erstellt die nach diesen Ordner sucht.
Also ich stelle mein Datum so zusammen:
set jahr=%date:~-4%
set monat=%date:~-6,1%
set tag=%date:~-10,2%
echo %jahr%-%monat%-%tag%
Wenn 2001-1-11 geht, dann funktioniert alles, wenn wir aber 2011-9-2 haben, sucht meine batch nach 2011-9-02 und findet natürlich nichts.
Gibt es dafür eine Lösung?
Vielen Dank in vorraus,
Gruß
Hallo Experten!
ich habe ein Problem.
Bei uns auf dem Server werden die Daten jede Nacht in bestimmte Ordner verschoben, der Ordnername sieht z.B so aus: 2011-8-12.
Ich habe eine Batch erstellt die nach diesen Ordner sucht.
Also ich stelle mein Datum so zusammen:
set jahr=%date:~-4%
set monat=%date:~-6,1%
set tag=%date:~-10,2%
echo %jahr%-%monat%-%tag%
Wenn 2001-1-11 geht, dann funktioniert alles, wenn wir aber 2011-9-2 haben, sucht meine batch nach 2011-9-02 und findet natürlich nichts.
Gibt es dafür eine Lösung?
Vielen Dank in vorraus,
Gruß
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 172501
Url: https://administrator.de/forum/datum-in-einem-bestimmten-format-erstellen-172501.html
Ausgedruckt am: 21.04.2025 um 13:04 Uhr
5 Kommentare
Neuester Kommentar

Moin,
bau doch einfach in den Biber ein
dazwischen. - Wenns sein muß - das gleiche mit dem Monat
Und vergess den Pistaziengrünen Haken nicht.
gruß
bau doch einfach in den Biber ein
if %date:~-11,1% gtr 0 set tag=%date:~-9,1%
Und vergess den Pistaziengrünen Haken nicht.
gruß
Moin poljew,
willkommen im Forum.
Oder trenne es so:
[Demo am CMD-Prompt; eingeben nur die Testzeilen beginnend mit ">" ]
Grüße
Biber
willkommen im Forum.
Oder trenne es so:
[Demo am CMD-Prompt; eingeben nur die Testzeilen beginnend mit ">" ]
>for /f "delims=- tokens=1-3" %i in ("2011-12-17") do @Echo 2011-12-17 jahr:[%i] monat:[%j] tach: [%k]
2011-12-17 jahr:[2011] monat:[12] tach: [17]
(=15:58:10 D:\temp=)
>for /f "delims=- tokens=1-3" %i in ("2011-1-9") do @Echo 2011-1-9 jahr:[%i] monat:[%j] tach: [%k]
2011-1-9 jahr:[2011] monat:[1] tach: [9]
Grüße
Biber
Hallo poljew,
relativ allgemeingültig (wenn man Zugriff auf die Registry hat) sind diese beiden Varianten:
Grüße
rubberman
relativ allgemeingültig (wenn man Zugriff auf die Registry hat) sind diese beiden Varianten:
@echo off &setlocal
:: iDate (Reihenfolge 0=mdy, 1=dmy, 2=ymd) und sDate (Trennzeichen) aus der Registry lesen (für beide Varianten)
for /f "tokens=1,2*" %%a in ('reg query "HKCU\Control Panel\International"^|findstr /i "\<[is]Date\>"') do set "%%a=%%c"
echo Reihenfolge: '%iDate%' Trennzeichen: '%sDate%'
:: Strings
for /f "tokens=1-3 delims=%sDate%" %%a in ("%date:* =%") do (
if %iDate%==0 (set mm=%%a&set dd=%%b&set yy=%%c)
if %iDate%==1 (set dd=%%a&set mm=%%b&set yy=%%c)
if %iDate%==2 (set yy=%%a&set mm=%%b&set dd=%%c)
)
echo %yy% %mm% %dd%
:: Zahlen
for /f "tokens=1-3 delims=%sDate%" %%a in ("%date:* =%") do (
if %iDate%==0 (set /a m=100%%a%%100,d=100%%b%%100,y=10000%%c%%10000)
if %iDate%==1 (set /a d=100%%a%%100,m=100%%b%%100,y=10000%%c%%10000)
if %iDate%==2 (set /a y=10000%%a%%10000,m=100%%b%%100,d=100%%c%%100)
)
echo %y% %m% %d%
pause
Grüße
rubberman