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-Key: 592764

Url: https://administrator.de/contentid/592764

Printed on: April 25, 2024 at 08:04 o'clock

Member: falscher-sperrstatus
falscher-sperrstatus Aug 01, 2020 at 18:00:03 (UTC)
Goto Top
Probiers mal ohne "" um %date%
Member: zeroblue2005
zeroblue2005 Aug 01, 2020 at 18:21:27 (UTC)
Goto Top
Hi Christian,

ne das war es leider nicht...
Member: em-pie
em-pie Aug 01, 2020 at 20:01:47 (UTC)
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
Member: zeroblue2005
zeroblue2005 Aug 01, 2020 at 20:41:51 (UTC)
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
Member: em-pie
Solution em-pie Aug 01, 2020 at 21:03:56 (UTC)
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
Member: zeroblue2005
zeroblue2005 Aug 02, 2020 at 07:14:22 (UTC)
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