Batch - Inhalt einer .txt verändern - Bitte um Steinigung
Ich dachte es wäre schnell gemacht, aber ich lese und lese, schnall es aber einfach nicht.
Hallo Administratoren.
Ich habe folgende Themen durchforstet ...
Thema 1
Thema 2
Thema 3
Thema 4
Thema 5
... komme aber nicht auf die Lösung.
Ich habe eine .txt Datei (bzw. ini) mit mehreren Zeilen Text.
In dem Text gibt es ein Schlüsselwort das einmalig vorhanden ist. Dieses will ich ändern (in diesem Falle das aktuelle Datum anhängen) und die Datei wieder speichern.
Aktives Ändern wird nicht funktionieren, also temporär speichern und dann verschieben bzw umbenennen (dies traue ich mir zu).
Ich habe bisher die Zeile mit dem Schlüsselwort ausgelesen, geändert und abgespeichert. Aber wie schaffe bekomme ich den anderen unveränderten Text in die ping_ausgabe.txt?
Ich will also nur eine kleine Änderung (eine Zeile bzw würde auch die gesuchte Passage (asus) reichen) vornehmen + den restlichen Inhalt der Datei (restlichen Zeilen) einfach übernehmen.
In den Themen die ich verlinkt habe, scheint die Antwort zu stehen, ich kann sie aber einfach nicht sehen oder verstehen.
Bitte um Hilfe ...
Hallo Administratoren.
Ich habe folgende Themen durchforstet ...
Thema 1
Thema 2
Thema 3
Thema 4
Thema 5
... komme aber nicht auf die Lösung.
Ich habe eine .txt Datei (bzw. ini) mit mehreren Zeilen Text.
In dem Text gibt es ein Schlüsselwort das einmalig vorhanden ist. Dieses will ich ändern (in diesem Falle das aktuelle Datum anhängen) und die Datei wieder speichern.
Aktives Ändern wird nicht funktionieren, also temporär speichern und dann verschieben bzw umbenennen (dies traue ich mir zu).
Ich habe bisher die Zeile mit dem Schlüsselwort ausgelesen, geändert und abgespeichert. Aber wie schaffe bekomme ich den anderen unveränderten Text in die ping_ausgabe.txt?
Ich will also nur eine kleine Änderung (eine Zeile bzw würde auch die gesuchte Passage (asus) reichen) vornehmen + den restlichen Inhalt der Datei (restlichen Zeilen) einfach übernehmen.
@echo off & setlocal enableDelayedExpansion
:: setze Zeit
set date=%date%
set yaer=%date:~8,4%
FOR /F "tokens=1,2,3 delims=/. " %%a in ('date /t') do set CDATE=%%b%%a
:: suche Schlüsselwort
for /F "delims=" %%i in ('findstr asus C:\123456789\ping.txt') do set "Line=%%i
::speichere Änderung
echo %Line%_%yaer%%CDATE% >>C:\123456789\ping_ausgabe.txt
::verzweifle ...
::temporäre Datei in Finale Datei umbenennen und an Zielort kopieren
move /y C:\123456789\ping_ausgabe.txt c:\Finaler_Ort\ping.ini
In den Themen die ich verlinkt habe, scheint die Antwort zu stehen, ich kann sie aber einfach nicht sehen oder verstehen.
Bitte um Hilfe ...
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 175792
Url: https://administrator.de/contentid/175792
Ausgedruckt am: 08.11.2024 um 00:11 Uhr
6 Kommentare
Neuester Kommentar
Aloha,
nun, eventuell gefällt dir auch dieses Thema in dem es auch nur darum geht ein bestimmtes Wort gegen ein anderes zu ersetzen
oder statt
greetz André
nun, eventuell gefällt dir auch dieses Thema in dem es auch nur darum geht ein bestimmtes Wort gegen ein anderes zu ersetzen
set "Von=Schluesselwort"set "Nach=%Von%_%date%"
oder statt
Von
eben Alt
und statt Nach
eben Neu
der Rest ist c&p ...greetz André
Jetzt ohne die verlinkten Beiträge gelesen zu haben funktioniert das ganze prinzipiell so:
1. Zeilennummer der zu ändernden Zeile herausfinden. Das geht z.B. über den Parameter /n des findstr Befehls.
2. Alles vor dieser Zeile in eine temponäre Datei schreiben (wieder Findstr mit parameter /N /R .* (so ungefär)
3. Die zu ändernde zeile ändern und an die temponäre Datei anhängen
4. Den Rest an die temponäre datei anhängen. Z.B. über der Befehl more +x
1. Zeilennummer der zu ändernden Zeile herausfinden. Das geht z.B. über den Parameter /n des findstr Befehls.
2. Alles vor dieser Zeile in eine temponäre Datei schreiben (wieder Findstr mit parameter /N /R .* (so ungefär)
3. Die zu ändernde zeile ändern und an die temponäre Datei anhängen
4. Den Rest an die temponäre datei anhängen. Z.B. über der Befehl more +x
Aloha,
erst einmal:
und dann
Dann
greetz André
erst einmal:
set date=%date%
== sinnfrei? und dann
set yaer=%date:~8,4%
== year und die Frage 8 Stellen überspringen (von 10) und 4 Stellen anzeigen? ... ergibt 2 vorhandene Stellen dennoch nur ... == set year=%date:~-2%
Dann
Wenn ich die goto :eof ändere
beide? Au weia, das zweite goto :eof
sorgt dafür, dass es zurück zur Hauptablauf (Schleife) geht ... was du aus dem ersten goto :eof
machst, ist dir überlassen, solange es zu einem Ziel nach Zeile 22 führt.greetz André