Batch FOR-Schleife Modulo auf Variable, fehlender Operator
Hi,
Ziel ist es, aus den 52 Wochen des Jahres maximal 8 Sätze zu generieren - kein Problem, sollte mit Modulo einfach zu handhaben sein, ab dem neunten fängt das Spiel wieder von vorne an, die Woche hole ich mir über die Unixtools, dass nach Silvester in der 52sten Woche (Modulo 4) wieder bei 1 begonnen wird ist zu vernachlässigen.
Beim testen bin ich so weit gekommen
bla entspricht dabei jedoch immer fasel, Ausgabe demnach
den Modulo bekomme ich so nicht raus. Hat da jemand einen Tipp für mich?
Gruss, Christian.
Ziel ist es, aus den 52 Wochen des Jahres maximal 8 Sätze zu generieren - kein Problem, sollte mit Modulo einfach zu handhaben sein, ab dem neunten fängt das Spiel wieder von vorne an, die Woche hole ich mir über die Unixtools, dass nach Silvester in der 52sten Woche (Modulo 4) wieder bei 1 begonnen wird ist zu vernachlässigen.
Beim testen bin ich so weit gekommen
@echo OFF
cls
:: um Variablen innerhalb von FOR-Schleifen benutzen können
SETLOCAL ENABLEDELAYEDEXPANSION
FOR /L %%i IN (1,1,30) DO (
set /a bla=%%i
set /a fasel=!bla! %7
set bla
set fasel
)
bla entspricht dabei jedoch immer fasel, Ausgabe demnach
bla=1
fasel=1
bla=2
fasel=2
...
bla=20
fasel=20
bla=21
fasel=21
...
den Modulo bekomme ich so nicht raus. Hat da jemand einen Tipp für mich?
Gruss, Christian.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 187055
Url: https://administrator.de/contentid/187055
Ausgedruckt am: 23.11.2024 um 08:11 Uhr
2 Kommentare
Neuester Kommentar
moin christian,
wenn Du numerische Variablen innerhalb von Klammern berechnest, dann ist die Verzögerte Auflösung vernachlässigbar.
Du rechnest mit Variablen ohne Prozent- bzw Ausrufezeichen.
Da Du die Variable mit Set ausgibst ist auch keine Verzögerung nötig.
Nur bei anderen Verwendungen ist ENABLEDELAYEDEXPANSION nötig.
Da kannste ja den Beitrag als gelöst Markieren...
Gruß Phil
:: um Variablen innerhalb von FOR-Schleifen benutzen können
SETLOCAL ENABLEDELAYEDEXPANSION
Du rechnest mit Variablen ohne Prozent- bzw Ausrufezeichen.
Da Du die Variable mit Set ausgibst ist auch keine Verzögerung nötig.
Nur bei anderen Verwendungen ist ENABLEDELAYEDEXPANSION nötig.
@echo off
setlocal disabledelayedexpansion
set /a Modulo = 7
FOR /L %%i IN (1,1,30) DO (
set /a fasel=%%i %%Modulo
set /a bla=%%i
set bla
set fasel
setlocal enabledelayedexpansion
echo bla=!bla!
endlocal
)
Da kannste ja den Beitrag als gelöst Markieren...
Gruß Phil