In config Datei in der 6ten Zeile etwas einfügen
Hallo zusammen,
ich habe folgendes problem:
Ich müsste in eine config.properties in die 6te Zeile etwas einfügen. Es soll nach dem Text, der unter der Variable "Suchen" steht eingefügt werden. Ich habe mir was gebastelt, dass steht zum teil im Forum, aber ich komme nicht weiter.
könnt ihr mir Helfen? Ich wäre euch sehr zu dank verbunden. Ich komme einfach nicht weiter.
Die batch soll einfach bis in die 6te Zeile springen und dort minimized=Y einfügen. Ist das möglich, oder hab ich hier den Falschen Ansatz?
@echo off setlocal
set "PaperCut=C:\PaperCut\config.properties"
set "Suchen=# client will be minimized to the task tray."
set Einfügen="minimized=Y"
for /f "tokens=1* delims= " %%i in ('findstr /n $ %PaperCut%') do (set "Zeile=%%j" & call :ProcessLine)
goto :eof
:ProcessLine
(
setlocal enabledelayedexpansion
echo(!Zeile!
if "%Zeile%"=="%Suchen%" echo %Einfügen%
endlocal
)
goto :eof
Danke euch für eure mühen.
Gruß
Legend
ich habe folgendes problem:
Ich müsste in eine config.properties in die 6te Zeile etwas einfügen. Es soll nach dem Text, der unter der Variable "Suchen" steht eingefügt werden. Ich habe mir was gebastelt, dass steht zum teil im Forum, aber ich komme nicht weiter.
könnt ihr mir Helfen? Ich wäre euch sehr zu dank verbunden. Ich komme einfach nicht weiter.
Die batch soll einfach bis in die 6te Zeile springen und dort minimized=Y einfügen. Ist das möglich, oder hab ich hier den Falschen Ansatz?
@echo off setlocal
set "PaperCut=C:\PaperCut\config.properties"
set "Suchen=# client will be minimized to the task tray."
set Einfügen="minimized=Y"
for /f "tokens=1* delims= " %%i in ('findstr /n $ %PaperCut%') do (set "Zeile=%%j" & call :ProcessLine)
goto :eof
:ProcessLine
(
setlocal enabledelayedexpansion
echo(!Zeile!
if "%Zeile%"=="%Suchen%" echo %Einfügen%
endlocal
)
goto :eof
Danke euch für eure mühen.
Gruß
Legend
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 252129
Url: https://administrator.de/contentid/252129
Ausgedruckt am: 22.11.2024 um 10:11 Uhr
4 Kommentare
Neuester Kommentar
Hallo Legend,
teste mal folgendes:
Gruß
Friemler
teste mal folgendes:
@echo off & setlocal
set "PaperCut=C:\PaperCut\config.properties"
set "Suchen=# client will be minimized to the task tray."
set "Einfuegen=minimized=Y"
for /f "tokens=1* delims=:" %%a in ('findstr /n "$" "%PaperCut%"') do (
echo.%%b
if "%%b" equ "%Suchen%" echo %Einfuegen%
)
Gruß
Friemler
Hallo Legend,
Du kannst nicht Daten aus der Datei lesen und gleichzeitig neue Daten in sie hineinschreiben. Benutze für die Ausgabe eine temporäre Datei. Die ursprüngliche Datei kann zum Schluss mit der temporären Datei überschrieben werden.
Außerdem arbeitet das Script schneller, wenn man die Ausgabeumleitung auf die komplette
Das könnte dann z.B. so gehen:
Gruß
Friemler
Du kannst nicht Daten aus der Datei lesen und gleichzeitig neue Daten in sie hineinschreiben. Benutze für die Ausgabe eine temporäre Datei. Die ursprüngliche Datei kann zum Schluss mit der temporären Datei überschrieben werden.
Außerdem arbeitet das Script schneller, wenn man die Ausgabeumleitung auf die komplette
FOR
-Schleife bezieht, dann braucht die Ausgabedatei nicht für jede Zeile erneut geöffnet und wieder geschlossen zu werden.Das könnte dann z.B. so gehen:
@echo off & setlocal
set "PaperCut=C:\PaperCut\config.properties"
set "PaperCutTmp=%PaperCut%.tmp"
set "Suchen=# client will be minimized to the task tray."
set "Einfuegen=minimized=Y"
(for /f "tokens=1* delims=:" %%a in ('findstr /n "$" "%PaperCut%"') do (
echo.%%b
if "%%b" equ "%Suchen%" echo %Einfuegen%
)) > "%PaperCutTmp%"
move "%PaperCutTmp%" "%PaperCut%" > NUL
Gruß
Friemler