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?
Please also mark the comments that contributed to the solution of the article
Content-Key: 244577
Url: https://administrator.de/contentid/244577
Printed on: April 20, 2024 at 03:04 o'clock
2 Comments
Latest comment
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