Batch - variablen als variable nutzen

Von: , Frage gestellt am Di, 14. Jul 2009

Guten Tag,

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

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

1 Antworten zu dieser Frage

  1. Antwort von nach 20 Stunden 0 hilfreich
    Re: Batch - variablen als variable nutzen

    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

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!