.ini Datei bearbeiten
Bin absoluter Anfänger was Batch betrifft, bitte um Nachsicht!
Folgendes Problem:
Es muss eine bestimmte Zeile in einer ini-Datei geändert werden, fehlt dieser, ist nichts zu machen.
Habe mir gefühlte 99 Threads durchgelesen, bin bei meinen Umsetzungen auf Probleme gestossen, habe Lösungen dazu gefunden und bin dann erneut auf Probleme gestossen...
Nun verzweifle ich, und bitte um Hilfe. So sieht es aktuell bei mir aus:
In der ini-Datei steht diese Zeile: UseUSB=1
Dieser soll in UseUSB=0 umgeändert werden.
Habe inzwischen gemerkt, das ein Gleichheitszeichen beim deklarieren Probleme macht, also habe ich es bei der Suche mal rausgenommen, und suche nur nach "UseUSB".
Beim Schreiben maskiere ich es, habe aber zwei Probleme:
1. die "0" funktioniert in der 3. Zeile nicht! Gebe ich in der 3. Zeile irgendeinen anderen Wert ausser "0" ein, dann läufts (auch 00 geht)
2. die Leerzeichen müssen eigentlich auch weg, aber "Set "ErsatzZeile=UseUSB^=0" geht leider auch nicht
Es soll über eine reine Batch-Datei laufen (kein vbs bzw. "sed" möglich)
Wie kann ich den Code da oben optimieren?? Vielen lieben Dank im Voraus!!
Gruß Breaker
Nachtrag: das mit "echo off" ist mir natürlich auch bewusst, dass es während der Entiwcklung rausgehört
Folgendes Problem:
Es muss eine bestimmte Zeile in einer ini-Datei geändert werden, fehlt dieser, ist nichts zu machen.
Habe mir gefühlte 99 Threads durchgelesen, bin bei meinen Umsetzungen auf Probleme gestossen, habe Lösungen dazu gefunden und bin dann erneut auf Probleme gestossen...
Nun verzweifle ich, und bitte um Hilfe. So sieht es aktuell bei mir aus:
@echo off & setlocal
Set "Suchwort=UseUSB"
Set "ErsatzZeile=UseUSB ^= 0"
If exist D:\temp\new.txt del D:\temp\new.txt
For /F "delims=" %%i in (D:\temp\eingabe.ini) do (
Echo %%i|Findstr /b %Suchwort% >nul
If Errorlevel 1 (
echo %%i>>D:\temp\new.txt
) Else (
echo %ErsatzZeile%>>D:\temp\new.txt
)
)
move D:\temp\new.txt D:\temp\eingabe.ini
In der ini-Datei steht diese Zeile: UseUSB=1
Dieser soll in UseUSB=0 umgeändert werden.
Habe inzwischen gemerkt, das ein Gleichheitszeichen beim deklarieren Probleme macht, also habe ich es bei der Suche mal rausgenommen, und suche nur nach "UseUSB".
Beim Schreiben maskiere ich es, habe aber zwei Probleme:
1. die "0" funktioniert in der 3. Zeile nicht! Gebe ich in der 3. Zeile irgendeinen anderen Wert ausser "0" ein, dann läufts (auch 00 geht)
2. die Leerzeichen müssen eigentlich auch weg, aber "Set "ErsatzZeile=UseUSB^=0" geht leider auch nicht
Es soll über eine reine Batch-Datei laufen (kein vbs bzw. "sed" möglich)
Wie kann ich den Code da oben optimieren?? Vielen lieben Dank im Voraus!!
Gruß Breaker
Nachtrag: das mit "echo off" ist mir natürlich auch bewusst, dass es während der Entiwcklung rausgehört
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 172595
Url: https://administrator.de/forum/ini-datei-bearbeiten-172595.html
Ausgedruckt am: 18.04.2025 um 07:04 Uhr
6 Kommentare
Neuester Kommentar

moin,
Gruß
Nachtrag: das mit "echo off" ist mir natürlich auch bewusst, dass es während der Entiwcklung rausgehört face-smile
- hast du aber Schwein gehabt
for /f "delims=*" %%a in (D:\temp\eingabe.ini) do (
if not "%%a"=="usb=1" echo %%a>>D:\temp\eingabe.txt
if "%%a"=="usb=1" echo usb^=^0>>D:\temp\eingabe.txt
)
copy D:\temp\eingabe.txt D:\temp\eingabe.ini
pause
Gruß

Moin,
die Zeile 5 kannst du noch kürzen:
Wenn sie sowieso weg soll, brauchst du auch nicht erst zu überprüfen, ob sie da ist.
Gruß
die Zeile 5 kannst du noch kürzen:
del D:\temp\new.txt 2>nul
Wenn sie sowieso weg soll, brauchst du auch nicht erst zu überprüfen, ob sie da ist.
Gruß
hast du aber Schwein gehabt
ROFL
Hallo,
[OT]
@Lochkartenstanzer:
Hat man dich zwar schon gefragt: Du hälst wohl sehr viel von cygwin, oder
?
[/OT]
MfG,
Mathe172
[OT]
@Lochkartenstanzer:
Es soll über eine reine Batch-Datei laufen (kein vbs bzw. "sed" möglich)
Sofern Du nicht auf batch festgelegt bist, könntest Du mit der bash (cygwin) das in einem Einzeiler machen:
Hast du die Frage durchgelesen?sed ...
Hat man dich zwar schon gefragt: Du hälst wohl sehr viel von cygwin, oder
[/OT]
MfG,
Mathe172
Ups, die Zeile habe ich wohl im Eifer des Gefechts übersehen. (Ich könnte schwören, die war vorher nicht da).
Du hälst wohl sehr viel von cygwin, oder face-wink?
ja. Ich benutze das sehr oft auf Kundensystemen unter Windows, weil ich da vieles elegander lösen kann als unter cmd.exe und vor allem nicht "von hinten durch die Brust ins Auge" schießen muß.
Manchmal kann ich mich halt nich zurückhalten, wenn ich wieder wilde BAT-Konstrukte sehe. Ich mache das zwar auch oft, asber nur dann wenn es überhaupt nicht anders geht. die cygwin/bash-skripten udn Kommandos sind übrigens ganz einfach auch in BAT-Dateien nutzbar, wenn die Pfade richtig gesetzt sind.
lks