snugg123
Goto Top

Dieselbe Variable nur einmal aus Textdatei lesen wenn sie mehrfach drinsteht

Hi,

ich habe eine Textdatei, in der eine Variable definiert ist.

Über

FOR /F "tokens=*" %%A IN ('type "%~dp0\datei.txt"') DO SET %%A

wird dann die Variable in die Batchdatei eingelesen.

Nun habe ich festgestellt, dass ich in die Textdatei dieselbe Variable mehrfach definieren kann und dann die letzte Definition gelesen wird.

Wie kann man es machen, dass wenn dieselbe Variable mehrfach in der Textdatei definiert ist, nur die erste Definition dieser Variablen ausgelesen wird?

Gruss

Content-Key: 594201

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

Printed on: April 20, 2024 at 15:04 o'clock

Mitglied: 145033
145033 Aug 06, 2020 updated at 15:36:20 (UTC)
Goto Top
for /f "usebackq tokens=1,* delims==" %%a in ("%~dp0datei.txt") do if not defined %%~a set "%%~a=%%~b"  
Mitglied: 138701
Solution 138701 Aug 06, 2020 at 17:01:26 (UTC)
Goto Top
Außerdem hilfreich:

( set /p a=
  set /p b=
  set /p c=
) <datei.txt

Damit werden die ersten 3 Zeilen in die Variablen "a", "b" und "c" gepackt.
Member: snugg123
snugg123 Aug 06, 2020 updated at 19:09:31 (UTC)
Goto Top
@ileies

Das klappt. Danke.
Member: snugg123
snugg123 Aug 06, 2020 at 19:09:03 (UTC)
Goto Top
@145033

Danke für Deinen Vorschlag. Klappt bei mir aber irgendwie nicht. Ich lese in der Batch eine Variable aus, die dann geprüft wird. Wenn ich Deinen Code stattdessen 1:1 übernehme, wird die Variable immer als falsch ausgewiesen auch wenn sie richtig in der Textdatei steht.

Bin aber im Programmieren auch nicht so bewandert, daher werde ich wohl irgendwas falsch gemacht haben.

Vielleicht hast Du eine Idee woran das liegt?
Mitglied: 138701
138701 Aug 11, 2020 at 15:34:53 (UTC)
Goto Top
Du hast ein "\" vergessen...


for /f "usebackq tokens=1,* delims==" %%a in ("%~dp0datei.txt") do if not defined %%~a set "%%~a=%%~b"
->
for /f "usebackq tokens=1,* delims==" %%a in ("%~dp0\datei.txt") do if not defined %%~a set "%%~a=%%~b"
Mitglied: 145033
145033 Aug 11, 2020 updated at 16:10:15 (UTC)
Goto Top
Zitat von @138701:

Du hast ein "\" vergessen...
Nein, der ist bei %~dp0 schon enthalten 😘