Wie bei Windows: Variablen innerhalb von If-Anweisungen so verhält es sich auch innerhalb von For-Anweisungen in Batch-Skripten.
Einleitend muss
setlocal enabledelayedexpansion
verwendet werden, um dann mit Variablen in “for…” weitermachen zu können. Dabei muss innerhalb der For-Anweisungen ebenfalls % durch ! ersetzt werden.
Also statt “%variable%” dann eben “!variable!”.
Ein Beispiel aus der Praxis mit einem “Extra”
In Zeile 9 aus dem unteren Skript-Auszug wurde es dann zunächst etwas kniffelig, da weder in der Hilfe oder auf die Schnelle im Netz dazu etwas gefunden werden konnte, wie denn nun der Umgang mit “set” beim Bearbeiten von Variablen aussehen muss.
Außerhalb von If, For, etc. würde so ein Befehl so aussehen:
set value=%value:~19,2%
Innerhalb von If, For, usw. dann so:
set value=!value%:~19,2!
Anbei ein Auszug aus einem Skript:
rem Werte zeilenweise einlesen und auf eigentlichen Wert (in °C) kuerzen for /f "delims=" %%v in (temp.txt) do ( rem Variable uebernehmen set value=%%v rem Variable auf den eigentlichen Wert (ohne Text) kuerzen set value=!value%:~19,2! rem Laufwerk hochzaehlen set /a drive=drive+1 rem Wert-Variable pro Laufwerk erstellen set /a value!drive!=!value! )
Auf diese Weise wird aus
Drive Temperature :43C (109.40 F)
nur noch
43

Verheiratet, Vater von zwei Kindern, eines an der Hand, eines im Herzen. Schon immer Technik-Freund, seit 2001 in der IT tätig und seit über 10 Jahren begeisterter Blogger. Mit meiner Firma IT-Service Weber kümmern wir uns um alle IT-Belange von gewerblichen Kunden und unterstützen zusätzlich sowohl Partner als auch Kollegen.
Schreibe einen Kommentar