Variable aus ini Datei auslesen und weiterverwenden
Hallo zusammen,
ich habe eine settings.ini Datei, die unter anderem folgendes beinhaltet:
[Settings]
port=1313
Nun möchte ich den Port auslesen um mit dem Wert weiterarbeiten zu können.
Wie mache ich das?
ich habe eine settings.ini Datei, die unter anderem folgendes beinhaltet:
[Settings]
port=1313
Nun möchte ich den Port auslesen um mit dem Wert weiterarbeiten zu können.
Wie mache ich das?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 308111
Url: https://administrator.de/forum/variable-aus-ini-datei-auslesen-und-weiterverwenden-308111.html
Ausgedruckt am: 25.12.2024 um 21:12 Uhr
17 Kommentare
Neuester Kommentar
Hier, das sollte laufen, ist der Code von Kraemer nur etwas angepasst:
Edit: Zeile (05) mit dem richtigen Pfad anpassen!
@echo off
cls
:: hier kommt dein ganzer Pfad
set "Verzeichnis=%~dp0"
set "Gesucht=port"
set "Wert="
FOR /F "delims=:" %%i in ('findstr /N /B /L /C:"%Gesucht%" "%Verzeichnis%\universalpos.ini"') do set zeile=%%i
echo. %Gesucht% liegt in %zeile% Zeile
set /a zeile=%zeile%-1
FOR /F "skip=%zeile% tokens=2 delims==" %%i in ('type "%Verzeichnis%\universalpos.ini"') do if not defined Wert set Wert=%%i
echo. Wert von %Gesucht% ist %Wert%
pause>nul
Dann versuche es mal damit:
@setlocal enableextensions enabledelayedexpansion
@echo off
set file=%~1
set area=[%~2]
set key=%~3
set currarea=
for /f "usebackq delims=" %%a in ("!file!") do (
set ln=%%a
if "x!ln:~0,1!"=="x[" (
set currarea=!ln!
) else (
for /f "tokens=1,2 delims== " %%b in ("!ln!") do (
set currkey=%%b
set currval=%%c
if "x!area!"=="x!currarea!" if "x!key!"=="x!currkey!" (
echo !currval!
)
)
)
)
endlocal
Hi, versuche es damit:
Port wird nur gelesen, wenn es im Abschnitt [Settings] steht.
@echo off & setlocal enabledelayedexpansion
cls
:: Pfad & iniDatei hier
set "Pfad=c:\Matrix\MatrixUniversal\etc\"
set "OrginiDatei=universalpos.ini"
set "Abschnitt=[Settings]"
set "Schluessel=port"
set "gefunden="
pushd %Pfad% || goto :eof
for /f "delims=" %%i in (%OrginiDatei%) do (
set "line=%%i"
if "%%i"=="%Abschnitt%" set gefunden=1
if defined gefunden (
if "!line:~0,5!"=="%Schluessel%=" echo Port Wert: !line:~5! &set "gefunden="
)
)
popd
pause>nul
Klitzekleine Änderung:
Als Hammer.cmd speichern und dann wie folgt aufrufen:
@setlocal enableextensions enabledelayedexpansion
@echo off
set file=%~1
set area=[%~2]
set key=%~3
set currarea=
for /f "usebackq delims=" %%a in ("!file!") do (
set ln=%%a
if "x!ln:~0,1!"=="x[" (
set currarea=!ln!
) else (
for /f "tokens=1,2 delims== " %%b in ("!ln!") do (
set currkey=%%b
set currval=%%c
if "x!area!"=="x!currarea!" if "x!key!"=="x!currkey!" (
exit /b !currval!
)
)
)
)
endlocal
Als Hammer.cmd speichern und dann wie folgt aufrufen:
Hammer.cmd c:\test.ini Settings port
echo %errorlevel%