Batch - Bestimmter Inhalt einer Zeile aus einer txt oder ini als Variable
Hallo zusammen,
leider finde ich den Fehler nicht. Na gut, vielleicht sitzt er vorm Monitor, aber das ist etwas anderes ;).
Zur bisherigen Batch:
Inhalt Zeile 15 aus "Parameter_Java.ini":
Version:7.0.650
Inhalt Zeile 16 aus "Parameter_Java.ini":
Aktueller_RegSchluessel:{26A24AE4-039D-4CA4-87B4-2F03217065FF}
Hier soll aus der "Parameter_Java.ini" aus Zeile 15 und Zeile 16 der zweite Wert ausgelesen werden. Trennzeichen ist der : . Die Option usebackq habe ich wegen dem " für den Dateipfad verwendet.
Verwende ich Tokens=1 bekomme ich als Ausgabe "Version" und "Aktueller_RegSchluesse" (ohne "). So weit, so gut.
Verwende ich Tokens=2 bekomme ich als Ausgabe nur noch ECHO ist ausgeschaltet (OFF). Aber genau die zweiten Werte brauche ich ja. Laut http://www.ss64.com/nt/for_f.html soll das mit den Tokens ja gehen, aber irgendetwas übersehe ich wohl.
Wo liegt mein Fehler?
leider finde ich den Fehler nicht. Na gut, vielleicht sitzt er vorm Monitor, aber das ist etwas anderes ;).
Zur bisherigen Batch:
@ECHO OFF & SETLOCAL ENABLEDELAYEDEXPANSION
COLOR F0
SET /a "cnt=1"
SET /a "n=15"
FOR /F "tokens=2 usebackq delims=:" %%i IN ("\\Fileserver\Freigabe\Parameter_Java.ini") DO CALL :Zeilenwahl %n% "%%i"
SET "Var_Version_Java=%Hilfs_Var%"
SET /a "cnt=1"
SET /a "n=16"
SET "Hilfs_Var="
FOR /F "usebackq tokens=2 delims=:" %%i IN ("\\Fileserver\Freigabe\Parameter_Java.ini") DO CALL :Zeilenwahl %n% "%%i"
SET "Var_RegKey_Java=%Hilfs_Var%"
:Zeilenwahl
IF %cnt%==%1 SET "Hilfs_Var=%~2"
SET /a "cnt+=1"
GOTO :eof
Inhalt Zeile 15 aus "Parameter_Java.ini":
Version:7.0.650
Inhalt Zeile 16 aus "Parameter_Java.ini":
Aktueller_RegSchluessel:{26A24AE4-039D-4CA4-87B4-2F03217065FF}
Hier soll aus der "Parameter_Java.ini" aus Zeile 15 und Zeile 16 der zweite Wert ausgelesen werden. Trennzeichen ist der : . Die Option usebackq habe ich wegen dem " für den Dateipfad verwendet.
Verwende ich Tokens=1 bekomme ich als Ausgabe "Version" und "Aktueller_RegSchluesse" (ohne "). So weit, so gut.
Verwende ich Tokens=2 bekomme ich als Ausgabe nur noch ECHO ist ausgeschaltet (OFF). Aber genau die zweiten Werte brauche ich ja. Laut http://www.ss64.com/nt/for_f.html soll das mit den Tokens ja gehen, aber irgendetwas übersehe ich wohl.
Wo liegt mein Fehler?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 244577
Url: https://administrator.de/forum/batch-bestimmter-inhalt-einer-zeile-aus-einer-txt-oder-ini-als-variable-244577.html
Ausgedruckt am: 10.06.2025 um 18:06 Uhr
2 Kommentare
Neuester Kommentar
Hallo element22, willkommen im Forum.
Teste:
Grüße
rubberman
Teste:
@echo off &setlocal
for /f "tokens=1,2* delims=:" %%i in (
'type "\\Fileserver\Freigabe\Parameter_Java.ini"^|findstr /n "^"'
) do (
if %%i==15 (set "Var_Version_Java=%%k") else if %%i==16 set "Var_RegKey_Java=%%k"
)
echo %Var_Version_Java%
echo %Var_RegKey_Java%
pause
rubberman