For-Schleife mit Modulo-Problem
Bin seit einiger Zeit am ausprobieren der Möglichkeiten von Batch und das Forum ist ja wohl das 'nonplusultra' auf dem Gebiet, weswegen ich mich auch grad mal registriert habe.
Selbst wenn '%%J=2008' ist und beim ausführen '2008%4 == 0' anzeigt wird, wird trotzdem der 'else'-Befehl ausgeführt.
Wo liegt da das Problem?
@echo off
set gesammttage=
set /a jahrheute=%date:~6,4%
set /a jahrheute=jahrheute-1
set jahrdamals=2006
for /L %%J IN (%jahrdamals%, 1, %jahrheute%) DO (
if %%J%%4 == 0 (
set /a gesammttage=gesammttage+366
) else (
set /a gesammttage=gesammttage+365
)
)
echo %gesammttage%
pause
Selbst wenn '%%J=2008' ist und beim ausführen '2008%4 == 0' anzeigt wird, wird trotzdem der 'else'-Befehl ausgeführt.
Wo liegt da das Problem?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 127612
Url: https://administrator.de/forum/for-schleife-mit-modulo-problem-127612.html
Ausgedruckt am: 30.04.2025 um 14:04 Uhr
2 Kommentare
Neuester Kommentar
Hallo Killgnom und willkommen im Forum!
Für die Modulo-Berechnung benötigst Du ein "
Grüße
bastla
Für die Modulo-Berechnung benötigst Du ein "
set /a
", und damit das ohne "delayedExpansion" umzusetzen ist, könntest Du es so versuchen:@echo off & setlocal
set gesamttage=
set /a jahrheute=%date:~6,4%
set /a jahrheute-=1
set jahrdamals=2006
for /L %%J IN (%jahrdamals%, 1, %jahrheute%) DO (
set /a gesamttage+=365
for /f %%a in ('set /a %%J%%4') do if %%a==0 set /a gesamttage+=1
)
)
echo %gesamttage%
pause
bastla