mehrere Variable aus Datei auslesen
Hallo zusammen
Mein Ziel:
Ich habe ein Programm geschrieben, dass Daten in eine Konfiguartionsdatei reinschreibt. Nun möchte ich, dass mein Batchfile, dass ich zum Snapshoten brauche diese Datei ausliest und den Wert der Variablen ausliest.
Ausgangslage:
Momentan habe ich ein File das Test.txt heisst, die auf C:\ liegt. In dieser Datei stehen zwei Zeilen mit zwei Werten z.B.
- PC01
- PC02
Dann habe ein Patchfile, dass Textfile auslesen soll. Dabei habe ich beim googeln den folgenden Code gefunden.
for /f %%a IN (C:\test.txt) do set VMNAME1= %%a
for /f %%b IN (C:\test.txt) do set VMNAME2= %%b
Problem:
Leider passiert es, dass nun die beide Batchvariablen den Wert PC02 haben. Allerdings möchte ich, dass die Variable VMNAME1z.B. den Wert PC01 hat und VMNAME2 z.B. PC02 (Die beiden PCxx Werte sind variablen beschrieben vom Ursprungsprogramm). Weiss jemand, wie ich die Variablen korrekt auszulesen habe.
danke
MOONXIT
Mein Ziel:
Ich habe ein Programm geschrieben, dass Daten in eine Konfiguartionsdatei reinschreibt. Nun möchte ich, dass mein Batchfile, dass ich zum Snapshoten brauche diese Datei ausliest und den Wert der Variablen ausliest.
Ausgangslage:
Momentan habe ich ein File das Test.txt heisst, die auf C:\ liegt. In dieser Datei stehen zwei Zeilen mit zwei Werten z.B.
- PC01
- PC02
Dann habe ein Patchfile, dass Textfile auslesen soll. Dabei habe ich beim googeln den folgenden Code gefunden.
for /f %%a IN (C:\test.txt) do set VMNAME1= %%a
for /f %%b IN (C:\test.txt) do set VMNAME2= %%b
Problem:
Leider passiert es, dass nun die beide Batchvariablen den Wert PC02 haben. Allerdings möchte ich, dass die Variable VMNAME1z.B. den Wert PC01 hat und VMNAME2 z.B. PC02 (Die beiden PCxx Werte sind variablen beschrieben vom Ursprungsprogramm). Weiss jemand, wie ich die Variablen korrekt auszulesen habe.
danke
MOONXIT
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 122868
Url: https://administrator.de/contentid/122868
Ausgedruckt am: 01.11.2024 um 02:11 Uhr
5 Kommentare
Neuester Kommentar
Moin MoonXIT,
wenn jede Zeile in eine andere Variable "übertragen" werden soll, dann musst Du es nach diesem Muster machen:
Okay, wenn Du in der Praxis ja nun keine 200 VMs nutzen wirst, dann ist es vertretbar und viel wichtiger: halbwegs wartbar.
Grüße
Biber
[Edit] Tippfehlerberichtigung siehe unten ("call SetMirWatt:%%a). [/Edit]
[Edit ii] Tippfehlerberichtigung ii siehe unten ("In Zeile 8 dann bitte noch 2 davon. ") [/Edit ii]
wenn jede Zeile in eine andere Variable "übertragen" werden soll, dann musst Du es nach diesem Muster machen:
@echo off & setlocal
for /f %%a IN (C:\test.txt) do call :SetMirWatt %%a
goto :eof
:SetMirWatt
if not defined VMNAME1 set "VMNAME1=%1" & goto :eof
if not defined VMNAME2 set "VMNAME2=%1" & goto :eof
:: ...
if not defined VMNAMEn set "VMNAMEn=%1" & goto :eof
Okay, wenn Du in der Praxis ja nun keine 200 VMs nutzen wirst, dann ist es vertretbar und viel wichtiger: halbwegs wartbar.
Grüße
Biber
[Edit] Tippfehlerberichtigung siehe unten ("call SetMirWatt:%%a). [/Edit]
[Edit ii] Tippfehlerberichtigung ii siehe unten ("In Zeile 8 dann bitte noch 2 davon. ") [/Edit ii]
In Zeile 8 dann bitte noch 2 davon.