okidoki
Goto Top

Variable innerhalb einer Variablen nutzen

Guten Tag,
beim letzten Besuch wurde mir sofort super geholfen mit dem Hinweis, bitte nächstes Mal besser suchen...
Ich habe es beherzigt, leider seit Stunden erfolglos!

Mit folgendem Code lese ich aus einer Datei Werte aus. Jetzt möchte ich das Auslesen aber dynamisch realisieren, d.h. in diesem Fall soll die 30 in "set var=%Zeile:~30,6%" durch eine Variable, beipsielsweise %z% ersetzt werden.


@echo off &setlocal enabledelayedexpansion
for /f "usebackq delims=" %%i in ("test.txt") do set Zeile=%%i & goto out

:out
set var=%Zeile:~30,6%
echo %var%
pause


Über Hilfe würde ich mich sehr freuen!

OKIDOKI
Kommentar vom Moderator Biber am Jan 18, 2012 um 19:00:34 Uhr
Beitrag verschoben von "Tools & Utilities" nach "Bätschkrams".
Variablen in Variablen sind zwar mitunter nützlich, aber deswegen doch noch keine Tools...

Content-Key: 179136

Url: https://administrator.de/contentid/179136

Printed on: April 26, 2024 at 11:04 o'clock

Member: bastla
bastla Jan 18, 2012 at 16:57:40 (UTC)
Goto Top
Hallo OKIDOKI!

Versuch es so:
...
set /a Offset=30
...
call set "var=%%Zeile:~%Offset%,6%%"  
...
Alternativ (da Du ja schon "delayedExpansion" verwendest):
set "var=!Zeile:~%Offset%,6!"
Grüße
bastla

[Edit] Überzähliges "call" entfernt [/Edit]
Member: OKIDOKI
OKIDOKI Jan 18, 2012 at 19:40:58 (UTC)
Goto Top
Hallo bastla,

funktioniert super!
Ergänzung: Nach der Methode von bastla lässt sich auch (in diesem Fall) die 6 durch eine Variable ersetzen.
Hintergrund: Es wird mittels Zufallszahl ein String erzeugt, an diese Stelle ein Wert gesetzt und anschließend wieder ausgelesen. Dabei markiert offset die genaue Position, die sich ja laufend (bedingt durch die Zufallszahl) ändernt.

Herzlichen Dank!
OKIDOKI