Variable in Batch erhöhen
Hochzählen einer Variablen
Hallo (Biber)(grins),
ich möchte in einer Batch den Wert einer Variablen jeweils erhöhen,
also z.B. Schritt1:
set 1=1 (somit habe ich in %1% den Wert 1
Schritt2 sollte den Wert in %1% um 1 erhöhen, und dafür fehlt mir die richtige Syntax
set 1=%1%+1 funktioniert nicht, hier bekomme ich statt 2 "1+1"
Wie ist die richtige Eingabe??
Danke schon mal vorab!
Gruß - Toni
Hallo (Biber)(grins),
ich möchte in einer Batch den Wert einer Variablen jeweils erhöhen,
also z.B. Schritt1:
set 1=1 (somit habe ich in %1% den Wert 1
Schritt2 sollte den Wert in %1% um 1 erhöhen, und dafür fehlt mir die richtige Syntax
set 1=%1%+1 funktioniert nicht, hier bekomme ich statt 2 "1+1"
Wie ist die richtige Eingabe??
Danke schon mal vorab!
Gruß - Toni
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 40930
Url: https://administrator.de/forum/variable-in-batch-erhoehen-40930.html
Ausgedruckt am: 20.04.2025 um 02:04 Uhr
3 Kommentare
Neuester Kommentar
@thx, miniversum
Na ja, Toni,
man/frau definiert auch keine Variablen, die "1" heißen sollen ...
Oder wäre das für Dich transparent, eine Variable "1" mit dem Wert "6" zu definieren?
Wenn ja, hast Du das Zeug zum Politiker - die senken auch die Arbeitslosenquote von 4 Millionen um 2 Millionen auf 4,7 Millionen... die müssen ähnlich rechnen.
3 oder 4 Regeln auf jeden Fall einhalten, falls Du schwer zu findende Tipp-Fehler vermeiden willst im Batch:
1) Variablennamen und Sprungmarken fangen mit einem Zeichen [a-z, A-Z] an und enthalten weder Sonderzeichen noch Umlaute.
2) Wer "eigene" Variablen neu definiert/verwendet, die es auch als Systemvariablennamen gibt (z.B. %username%, %computername% , %date%..), der muss entweder sehr fit oder sehr blöd sein
3) Um unbeabsichtigte Leerzeichen bei der Zuweisung von Werten an eine Variable zu vermeiden, sollte die gesamte Zuweisung durch Anführungszeichen begrenzt sein:
[set "myVar=Biber" statt set myvar=Biber]
4) wenn variablen als "numerische Werte" verwendet werden sollen, dann von Anfang an mit "Set /a" definieren ...
Bsp: Set /a "myNumvar=22"
Deine Rechnerei oben funktioniert, wenn Du die Variable "v1" statt nur "1" nennst. Und den Schalter /a beim SET verwendest.
HTH
Biber
Na ja, Toni,
man/frau definiert auch keine Variablen, die "1" heißen sollen ...
Oder wäre das für Dich transparent, eine Variable "1" mit dem Wert "6" zu definieren?
Wenn ja, hast Du das Zeug zum Politiker - die senken auch die Arbeitslosenquote von 4 Millionen um 2 Millionen auf 4,7 Millionen... die müssen ähnlich rechnen.
3 oder 4 Regeln auf jeden Fall einhalten, falls Du schwer zu findende Tipp-Fehler vermeiden willst im Batch:
1) Variablennamen und Sprungmarken fangen mit einem Zeichen [a-z, A-Z] an und enthalten weder Sonderzeichen noch Umlaute.
2) Wer "eigene" Variablen neu definiert/verwendet, die es auch als Systemvariablennamen gibt (z.B. %username%, %computername% , %date%..), der muss entweder sehr fit oder sehr blöd sein
3) Um unbeabsichtigte Leerzeichen bei der Zuweisung von Werten an eine Variable zu vermeiden, sollte die gesamte Zuweisung durch Anführungszeichen begrenzt sein:
[set "myVar=Biber" statt set myvar=Biber]
4) wenn variablen als "numerische Werte" verwendet werden sollen, dann von Anfang an mit "Set /a" definieren ...
Bsp: Set /a "myNumvar=22"
Deine Rechnerei oben funktioniert, wenn Du die Variable "v1" statt nur "1" nennst. Und den Schalter /a beim SET verwendest.
>set /a "v1=27"
27
>set /a "v1+=27"
54
>set /a "v1/=8"
6
>set /a "v1=%v1% + 103"
109
>set /a "v1="v1" + 103"
212
HTH
Biber