HOWTO · Batch

Batchdatei zum Schreiben in eine Textdatei verwenden

In diesem Lernprogramm wird das Schreiben einer Textdatei mit Batch Script erläutert.

Auf dieser Seite

Mit dem Befehl ECHO und > erstellen Sie eine Textdatei oder ersetzen ihren Inhalt. Mit >> fügen Sie Text hinzu und behalten den vorhandenen Inhalt bei. Beide Operatoren funktionieren in der Windows-Eingabeaufforderung und in .bat-Skripten. Die folgenden Beispiele zeigen die Befehle und den jeweils in die Datei geschriebenen Text.

Neue Textdatei erstellen

Dieses Skript schreibt eine Zeile in myfile.txt im aktuellen Arbeitsverzeichnis:

@echo off
echo This is my first line of text > myfile.txt

Die Datei enthält den Beispieltext This is my first line of text; dieser bleibt im unveränderten Beispiel auf Englisch. Existiert myfile.txt bereits, ersetzt > den bisherigen Inhalt. Verwenden Sie für einen anderen Speicherort einen vollständigen Zielpfad, zum Beispiel C:\Users\YourName\Documents\myfile.txt; der Zielordner muss bereits vorhanden sein. Mit @echo off verhindern Sie, dass die Batch-Befehle während der Ausführung angezeigt werden.

An eine vorhandene Textdatei anhängen

Verwenden Sie >>, wenn Sie den vorhandenen Inhalt behalten und am Ende eine Zeile hinzufügen möchten. Dieses eigenständige Beispiel erstellt zunächst eine Datei mit bekanntem Anfangsinhalt und hängt anschließend eine zweite Zeile an:

@echo off
echo First line> myfile.txt
echo Added line>> myfile.txt

Nach der Ausführung enthält die Datei zuerst First line und in der nächsten Zeile Added line. Diese Beispieltexte bleiben im unveränderten Beispiel auf Englisch. Bei jedem weiteren Durchlauf wird eine weitere Zeile Added line angefügt; der vorherige Text wird nicht ersetzt. Der erste Befehl verwendet >, um den Ausgangszustand für das Beispiel herzustellen. Lassen Sie diesen Befehl weg, wenn Sie das Skript für eine Datei verwenden, die bereits Daten enthält.

Mehrere Zeilen in eine Textdatei schreiben

Fassen Sie mehrere ECHO-Befehle in Klammern zusammen und leiten Sie die gesamte Gruppe einmal um:

@echo off
(
echo First line
echo Second line
echo Third line
) > myfile.txt

Jeder Befehl schreibt eine eigene Zeile. Da die Gruppe mit > umgeleitet wird, ersetzt sie beim Ausführen den Inhalt der Zieldatei durch diese drei Zeilen. Ändern Sie > in >>, um die Zeilen an den vorhandenen Inhalt anzuhängen.

Variablen in Textdateien verwenden

Legen Sie mit SET einen Wert fest und schließen Sie ihn beim Schreiben der Zeile in Prozentzeichen ein:

@echo off
set "myVariable=Hello from Batch"
echo %myVariable%> myfile.txt

Die Datei erhält den Wert Hello from Batch; dieser bleibt im unveränderten Beispiel auf Englisch. Die Anführungszeichen in der verwendeten SET-Form verhindern versehentliche Leerzeichen am Ende des gespeicherten Werts. Sie gehören nicht zum Wert selbst. Verwenden Sie stattdessen >>, wenn der Variablenwert an eine vorhandene Datei angehängt werden soll.

Befehlsausgabe in eine Textdatei schreiben

Leiten Sie die Ausgabe eines Befehls wie DIR um, um dessen Verzeichnisauflistung zu speichern:

@echo off
dir > directory_list.txt

Damit wird directory_list.txt mit der Auflistung des aktuellen Verzeichnisses erstellt oder überschrieben. Die Einträge hängen vom Computer und vom aktuellen Arbeitsverzeichnis ab, daher variiert der Dateiinhalt. Mit dir >> directory_list.txt hängen Sie eine neue Auflistung an den vorhandenen Text an.

Vorhandene Textdatei aktualisieren

Wählen Sie den Operator danach aus, was „aktualisieren“ in Ihrem Fall bedeutet: >> fügt neuen Text hinzu und erhält die vorhandenen Zeilen, während > den Dateiinhalt durch die Ausgabe des Befehls ersetzt. Der Befehl echo Status: complete >> myfile.txt fügt beispielsweise eine Statuszeile hinzu. Wenn Sie eine bestimmte Zeile ändern und den übrigen Inhalt beibehalten müssen, verwenden Sie dafür ein geeignetes Dateibearbeitungswerkzeug. Eine FOR /F-Schleife, die eine Datei einliest und neu schreibt, ist keine allgemein sichere Methode zum Ersetzen: Dabei können Leerzeilen und Text mit Batch-Sonderzeichen verändert werden.

Häufig gestellte Fragen

  1. Wie erstelle ich eine Textdatei? Verwenden Sie ECHO mit >; die Datei wird bei Bedarf erstellt und ein vorhandener Inhalt ersetzt.
  2. Wie hänge ich Text an, ohne den vorhandenen Inhalt zu ersetzen? Verwenden Sie >>.
  3. Wie schreibe ich mehrere Zeilen? Fassen Sie mehrere ECHO-Befehle in einem Klammerblock zusammen und leiten Sie den Block um.
  4. Kann eine Zeile eine Variable enthalten? Ja. Legen Sie den Wert mit SET fest und geben Sie ihn in einem ECHO-Befehl als %variableName% aus.
  5. Wie speichere ich die Ausgabe eines Befehls? Setzen Sie > oder >> hinter den Befehl, um die Zieldatei zu ersetzen beziehungsweise Text anzuhängen.