Batch - variablen als variable nutzen

Guten Tag,

ich hoffe hier jemanden zu finden der mir bei meinem hoffentlichen Denkfehler helfen kann :frowning:

Ich habe 3 Dateien. Eine batch, eine csv und eine ini Datei.
In der ini Datei schreibe ich dir konfigurationen wie z.B.

eingang=%a %b %c %d
ausgang=%1,%3,%2,%4
datei=c:\testspeicher.txt

Jetzt möchte ich in der Batch die Werte der ini und die komplette csv auslesen und variablen zuweisen:

for /F „eol=# delims== tokens=2“ %%i in (‚find „eingang“ %confi%‘) do @set eingang=%%i
for /F „eol=# delims== tokens=2“ %%i in (‚find „ausgang“ %confi%‘) do @set ausgang=%%i
for /F „eol=# delims== tokens=2“ %%i in (‚find „datei“ %confi%‘) do @set datei=%%i

for /f „skip=1 delims=; tokens=1-4“ %%a in (name.csv) do call :WriteCVS %eingang%
GOTO Done

WriteCVS

ECHO %ausgang%>>%datei%
GOTO EOF

Done
EOF

Mein Problem befindet sich allerdings in der Zeile:
ECHO %ausgang%>>%datei%

in die Datei schreibt er mir jetzt %1,%2,%3,%3 anstatt da die Werte meiner name.csv Datei reinzuschreiben.
Mache ich komischerweise das aus dem Bereich:
ECHO %1,%2,%3,%3 >>%datei%

Dann funktioniert es.

Kann mir jemand sagen was ich falsch mache?
Ich habe es mit „“ probiert aber ich komme nicht an mein Ziel.

Ich will die Reihenfolge, wie ich die Daten in meine neue Datei reinschrieben kann, in einer ini ablegen und nicht in die batch schreiben.

Hoffe jemand kann mir helfen.

Danke

Mfg
n3t

hallo

dein denkfehler ist, dass du annimmst, dass windows schlau genug ist und automatisch variablen in texten durch die dazugehörigen inhalte ersetzt. das macht windows aber nicht. unter linux (genauer: mit einer bash) kann man sich mit dem eval-kommando helfen. obs für windows eine ähnliche lösung gibt, weiss ich nicht.

ev. kannst du daber folgende lösung verwenden: schreib anstatt deiner textdateien einfach kleine batch-skripte, die die parameter per echo ausgeben. den output eines skripts kannst du über ein for-konstrukt auslesen (zugegebenermassen ist das sehr kompliziert).

lg
erwin