Mit Batchdatei eine .txt einlesen und bearbeiten?
Hallo zusammen. Ich habe folgende Frage. Ich habe ein Batchscript mit dem ich über das CMD Fenster eine txt Datei erzeugt habe mit text, den ich zuvor in Batch eingegeben habe. Jetzt möchte ich gerade den Inhalt, also den Text, wieder in das Fenster einlesen. (z.B. Befehl type PFAD). Allerdings möchte ich den Text jetzt noch bearbeiten und das geht nicht mit type. Gibt es eine andere Möglichkeit?
Info: Das Batchscript ist ein Kassenprogramm das überwiegend zur Ziffern gesteuert wird. Also möchte ich es vermeiden in die normale Befehlseingabe zu kommen. Also die Batch datei bekommt z.B. Durch das drücken von 1 Enter den Befehl goto B in :B soll die Datei nun die Textdatei einlesen und zum bearbeiten (im CMD Fenster) bereit machen. Ich möchte ausschließlich in CMD arbeiten.
Wäre schön, wenn mir jemand helfen könnte. Ich weiß leider nicht einmal von es mit Batch überhaupt geht.
2 Antworten
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.".