zeroblue2005
Goto Top

Vergleich Datum in Batch

Hallo Zusammen

was stimmt an der Syntax nicht? Das sollte doch eigentlich funktionieren oder? Er springt jedoch immer in kleiner... (01.08.2020)

if "%date%" GEQ "31.07.2020" (goto groesser ) else (goto kleiner)  

:groesser
cls
@echo ist groesser als %date%
pause

:kleiner
cls
@echo ist kleiner als %date%
pause

Danke

Content-ID: 592764

Url: https://administrator.de/forum/vergleich-datum-in-batch-592764.html

Ausgedruckt am: 22.12.2024 um 10:12 Uhr

certifiedit.net
certifiedit.net 01.08.2020 um 20:00:03 Uhr
Goto Top
Probiers mal ohne "" um %date%
zeroblue2005
zeroblue2005 01.08.2020 um 20:21:27 Uhr
Goto Top
Hi Christian,

ne das war es leider nicht...
em-pie
em-pie 01.08.2020 um 22:01:47 Uhr
Goto Top
Moin,

Ich vermute, der vergleicht das als String

Und da 31.07.2020 größer als 01.08.2020 ist...


Konvertiere dir das Datum in ein ISO-Format:
JJJJMMDD...

Dann sollte es klappen

Gruß
em-pie
zeroblue2005
zeroblue2005 01.08.2020 um 22:41:51 Uhr
Goto Top
Hi em-pie,

das habe ich jetzt versucht, geht aber immer noch nicht. Habe ich einen Fehler gemacht?

set TAG=%date:~-10,2%
set MONAT=%date:~-7,2%
set JAHR=%date:~-4%
set ISODATE=%TAG%.%MONAT%.%JAHR%

IF %ISODATE% GEQ 31.07.2020 (goto grosser ) else (goto kleiner)

:grosser
cls
@echo ist grosser als %date%
pause

:kleiner
cls
@echo ist kleiner als %date%
pause
em-pie
Lösung em-pie 01.08.2020 um 23:03:56 Uhr
Goto Top
Du hast gerade das gleiche noch mal gebaut.

Du sollst doch JJJJMMTT machen

Also
Set ISODATE=%JAHR%%MONAT%%TAG%
...
IF %ISODATE% GEQ 20200731 
Blablabla
zeroblue2005
zeroblue2005 02.08.2020 um 09:14:22 Uhr
Goto Top
Oh sorry, mein Fehler. Ich dachte , das ISO Format hat den Sinn, dass Windows in der Lage ist via System den Datumsvergleich zu machen. Wir haben aber jetzt dafür gesorgt, dass wir das Datum so zerlegen, dass definitiv das höhere Datum als Nummerischer Wert immer grösser oder kleiner ist.

Danke das klappt jetzt face-smile