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.
@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?
Please also mark the comments that contributed to the solution of the article
Content-Key: 127612
Url: https://administrator.de/contentid/127612
Printed on: April 25, 2024 at 17:04 o'clock
2 Comments
Latest comment
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