Über eine Batch datei etwas in die 4. Zeile einer Textdatei schreiben
Hallo Batch spezialisten,
Ich bin gerade dabei eine Batch datei zu schreiben doch ich hänge an einem Problem. Wie gebe ich eine Batch datei den Befehl etwas in die 4. Zeile einer Textdatei zu schreiben?
WÜrde mich über eine schnelle Antwort freuen und sage schon mal im Vorraus danke.
Ich bin gerade dabei eine Batch datei zu schreiben doch ich hänge an einem Problem. Wie gebe ich eine Batch datei den Befehl etwas in die 4. Zeile einer Textdatei zu schreiben?
WÜrde mich über eine schnelle Antwort freuen und sage schon mal im Vorraus danke.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 79699
Url: https://administrator.de/contentid/79699
Ausgedruckt am: 22.11.2024 um 22:11 Uhr
11 Kommentare
Neuester Kommentar
Hallo Bjoern909 und willkommen im Forum!
Mit dem folgenden Batch wird die angegebene Zeile als neue Zeile 4 eingefügt - solltest Du nach der Zeile 4 einfügen wollen (Deine diesbezüglichen Aussagen sind nicht eindeutig), musst Du nur die Zeile "set Z=1" durch "set Z=0" ersetzen:
Die ursprüngliche Textdatei bleibt als Sicherungskopie (mit dem Zusatz ".bak") erhalten - falls Du das nicht willst, füge die Zeile
vor der Zeile "goto :eof" ein.
Zu Deiner anderen Frage: Wodurch wird die "bestimmte Zeile" bestimmt, und wie ist dann das gesuchte Wort zu erkennen?
Grüße
bastla
Mit dem folgenden Batch wird die angegebene Zeile als neue Zeile 4 eingefügt - solltest Du nach der Zeile 4 einfügen wollen (Deine diesbezüglichen Aussagen sind nicht eindeutig), musst Du nur die Zeile "set Z=1" durch "set Z=0" ersetzen:
@echo off & setlocal
set "Datei=D:\DeineDatei.txt"
set EinfZeile=4
set "NeueZeile=Zeileninhalt der neuen Zeile"
set "Bak=%Datei%.bak"
move "%Datei%" "%Bak%"
set Z=1
for /f "usebackq delims=" %%i in ("%Bak%") do set "Zeile=%%i" & call :ProcessLine
goto :eof
:ProcessLine
if %Z% neq %EinfZeile% goto :SchreibeZeile
echo %NeueZeile%>>"%Datei%"
:SchreibeZeile
echo %Zeile%>>"%Datei%"
set /a Z+=1
del "%Bak%"
Zu Deiner anderen Frage: Wodurch wird die "bestimmte Zeile" bestimmt, und wie ist dann das gesuchte Wort zu erkennen?
Grüße
bastla
funktioniert der Code für Frage 1 auch für Batch dateien?
Grundsätzlich für alle Textdateien, daher: ja.Irgendwie erstellt der dann eine bak datei. Was ist das ...
... eine Sicherungskopie (Textdatei vor dem Einfügen der Zeile)... und was soll das bringen?
Sicherheit Ansonsten magst Du ja vielleicht oben nochmals nachlesen, wie Du diese Kopie einfach wieder los wirst ...
Grüße
bastla
Hallo Bjoern909!
Um die Zeile 4 zu ersetzen:
Nochmals zu
Grüße
bastla
Um die Zeile 4 zu ersetzen:
@echo off & setlocal
set "Datei=D:\DeineDatei.txt"
set EinfZeile=4
set "NeueZeile=Zeileninhalt der neuen Zeile"
set "Bak=%Datei%.bak"
move "%Datei%" "%Bak%"
set Z=1
for /f "usebackq delims=" %%i in ("%Bak%") do set "Zeile=%%i" & call :ProcessLine
goto :eof
:ProcessLine
if %Z% neq %EinfZeile% (echo %Zeile%>>"%Datei%") else echo %NeueZeile%>>"%Datei%"
set /a Z+=1
in dieser 2. batch datei ist dann in der 1. Zeile ein Name.
Falls Du mich missverstanden haben solltest: Es ist nicht so, dass ich Dir nicht helfen wollte, sondern dass ich es ohne zusätzliche Informationen über diese Zeile nicht kann.Grüße
bastla