batch - Werte addieren
Hallo zusammen,
ich möchte gerne in einem Batch-Skript innerhalb einer Schleife einerseits den Wert des Zählers verwenden, zum anderen aber auch diesen Wert + 1. Der folgende Code liefert aber leider nicht das gwünschte Ergebnis.
...
for /L %%i IN (1,2,%halbeseitenanzahl%) do (
set /a j = %%i% + 1
echo %j%
)
...
Kann mir jemand weiterhelfen?
Danke und beste Grüße
guethi
Antwort schreiben
Antwort 1 von Arno_Nym vom 05.08.2020, 14:04 Options
So richtig weiß ich zwar nicht, was du damit bezwecken willst, aber evtl. geht das eher mit 'ner Subroutine...
...
for /L %%i IN (1,2,%halbeseitenanzahl%) do call :sub1 %%i
goto :ende
:sub1
set /a j = %1 + 1
echo %1, %j%
:ende
...
Arno
Antwort 2 von guethi vom 05.08.2020, 14:11 Options
Hm...blick ich nicht...
:sub1
set /a j = %1 + 1
echo %1, %j%
was macht das %1 ... müsste das nicht %i sein?
LG
guethi
Antwort 3 von Arno_Nym vom 05.08.2020, 14:20 Options
%1 ist (wie auch beim Aufruf einer Batchdatei üblich) der erste der Subroutine übergebene Parameter (hier hat %1 also den Inhalt von %%i, da oben :sub1 mit %%i aufgerufen wird).
Eine korrektere Schreibweise meines Beispiels ist übrigens
for /L %%i IN (1,2,%halbeseitenanzahl%) do call :sub1 %%i
goto :ende
:sub1
set /a j = %1 + 1
echo %1, %j%
goto :ende
:ende
(ist wichtig, um :sub1 ordentlich abzuschließen, falls danach in der Batch nochwas gemacht wird, fällt nur in diesem Beispiel nicht auf)
Arno
Antwort 4 von guethi vom 05.08.2020, 14:33 Options
Ah, jetzt! :-) Vielen Dank!
Wo ich nun gerade einen Batch-kundigen vor mir habe - was hat es denn mit der unterschiedlichen Positionierung der % bei den Variaben auf sich? Mal ist es %i, mal %%i, mal %i% ...
Ich bin in VBA recht fit - bei diesen Batch-Geschichten lerne ich gerade laufen...oder vielmehr krabbeln. ;-)
Liebe Grüße
Christian
Antwort 5 von Arno_Nym vom 05.08.2020, 14:45 Options
Hmm, mal aufdröseln...
%i nimmt man beim FOR-Befehl direkt auf der Kommandozeile.
for ... %i in ... do echo %i
%%i bei Verwendung des FOR-Befehls in einer Batch:
for ... %%i in ... do echo %%i
%i% wäre eine normale Variable, die vorher mit SET gesetzt wurde:
set i = Blabla
echo %i%
Arno
Antwort 6 von guethi vom 05.08.2020, 14:53 Options
Vielen Dank ... ich sehe schon, es wird ein langer Weg :-).
Viele Grüße
Christian