Batch bestimmte Zeile in .ini umschreiben
Guten Tag
Ich habe eine Frage . Ich habe 2 Dateien : 1" Main.Bat" und 1 "config.ini"
Code der Main.bat [Nur das wichtige]
und der Code von der config.ini"
Ich benutze die "config,ini" nur zum Variablen setzen. ich möchte nun von der "Main.Bat" die "config,ini" bearbeiten. Zb: "Set Safety_Title=Locked" zu "Set Safety_Title=Hallo" oder "Set color=0F" zu "Set color=9F". Hoffe ihr könnt meine Frage verstehen . Lg Alex . Danke schon mal im Vorraus.
Ich habe eine Frage . Ich habe 2 Dateien : 1" Main.Bat" und 1 "config.ini"
Code der Main.bat [Nur das wichtige]
echo off
rename config.ini config.bat
call config.bat
rename config.bat config.ini
und der Code von der config.ini"
Set title=--==M==--
Set color=0F
Set password=test
Set C_calc_title=Calculator
Set C_Time_title=Time and Date
Set Safety=true
Set Safety_P=1234
Set Safety_Title=Locked
Set Safety_Login_Fail_Count_MAX=3
Ich benutze die "config,ini" nur zum Variablen setzen. ich möchte nun von der "Main.Bat" die "config,ini" bearbeiten. Zb: "Set Safety_Title=Locked" zu "Set Safety_Title=Hallo" oder "Set color=0F" zu "Set color=9F". Hoffe ihr könnt meine Frage verstehen . Lg Alex . Danke schon mal im Vorraus.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 371776
Url: https://administrator.de/forum/batch-bestimmte-zeile-in-ini-umschreiben-371776.html
Ausgedruckt am: 21.04.2025 um 22:04 Uhr
4 Kommentare
Neuester Kommentar
Hallo,
mal abgesehen davon, dass ich da eher hin gehen würde und die "Set" befehle aus der config.ini rausmachen und dann die Datei nicht als bat aufrufen sondern einfach mit einer for Schleife zeilenweise auslesen und set mit der variabeln aufrufen würde, kannst Du doch einfach die Variable danach überschriben.
Du rufst die config.bat auf und danach weist du den neuen Wert zu:
Gruß
...
mal abgesehen davon, dass ich da eher hin gehen würde und die "Set" befehle aus der config.ini rausmachen und dann die Datei nicht als bat aufrufen sondern einfach mit einer for Schleife zeilenweise auslesen und set mit der variabeln aufrufen würde, kannst Du doch einfach die Variable danach überschriben.
Du rufst die config.bat auf und danach weist du den neuen Wert zu:
call config.bat
set color=9F
Gruß
...
Hallo Alex,
Du könntest die Variablen mit einem Script setzen, wie ich es in meinem Tutorial zur FOR-Schleife in Beispiel 12 beschreibe (Zeile 13 dieses Scripts ist die entscheidende). Die
und kann wesentlich einfacher per Texteditor bearbeitet werden.
Eine solche Datei ließe sich z.B. folgendermaßen ändern:
Grüße
Friemler
Du könntest die Variablen mit einem Script setzen, wie ich es in meinem Tutorial zur FOR-Schleife in Beispiel 12 beschreibe (Zeile 13 dieses Scripts ist die entscheidende). Die
Config.ini
wäre dann wirklich eine INI-Datei nach dem SchemaSchlüssel=Wert
Eine solche Datei ließe sich z.B. folgendermaßen ändern:
@echo off & setlocal
::Grundkonfiguration
set "IniFile=.\Config.ini"
set "TmpFile=%Temp%\Config.ini"
::Schlüssel Safety_Title ändern
set "Key=Safety_Title"
set "NewValue=Locked"
call :UpdateIniFile "%Key%" "%NewValue%"
::Weitere Schlüssel ändern
set "Key=..."
set "NewValue=..."
call :UpdateIniFile "%Key%" "%NewValue%"
::Script beenden
exit /b
::*****************************************************************************
:: Bereich für Unterprogramm
::*****************************************************************************
:UpdateIniFile
::Schlüssel ändern
> "%TmpFile%" (
for /f "usebackq tokens=1* delims==" %%a in ("%IniFile%") do (
if /i "%%a" neq "%~1" (
echo %%a=%%b
) else (
echo %%a=%~2
)
)
)
::Originale INI-Datei mit der aktualisierten Version überschreiben
move "%TmpFile%" "%IniFile%" > NUL
exit /b 0
Grüße
Friemler