Mit Batchdatei eine .txt einlesen und bearbeiten?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Du könntest zwar den Text im CMD-Fenster ausgeben, aber bearbeiten geht da nicht !!!
zum Bearbeiten müsstest Du die Textdatei in einen Texteditor (o.ä.) einlesen !!! ;)

Du kannst den Inhalt mit FOR und SET einlesen und mit SET bearbeiten. Mit ECHO kannst du den Text in eine Datei schreiben.

Dafür ist es notwendig, den genauen Aufbau des Inhaltes zu kennen. Da du den selbst bestimmst, bist du hier flexibel.

Ich schreibe prinzipiell immer erst einen Variablennamen, dann ein Gleichheitszeichen und dann den Inhalt der Variable in einer Datei, z. B.

Miep=Das hier ist der Wert.

Diese Zeile könnte ich dann wie folgt auslesen:

FOR /F "tokens=1,* delims==" %%A IN (Datei.txt) DO set %%A=%%B
set Miep=%Miep:ist=war%
echo %Miep%>"Neue Datei.txt"

Nach /F kannst du in dem FOR-Befehl angeben, mit wie vielen voneinander abgeschottete Zeichenfolgen du arbeiten willst ("Tokens") und welche Zeichen als Trennzeichen gewertet werden ("delims" = "delimiters").

In meinem Beispiel wird nur die erste Zeichenfolge von allen darauf folgenden getrennt durch ein Gleichheitszeichen. Diese Zeichenfolgen rufe ich mit "%%A" und "%%B" auf. Gäbe ich mehr verschiedene an, wäre Token 3 "%%C", Token 4 "%%D" usw. Mit dem SET-Befehl speichere ich den Wert in der Variable.

Anschließend verwende ich einen weiteren SET-Befehl, um das Wort "ist" im Inhalt der Variable "Miep" mit dem Wort "war" zu ersetzen. Der neue Inhalt entspricht dann "Das hier war der Wert.".