Batch-Kurs, Teil 3: Hier gehts lang: Umleitungen
Windows-Kommandozeilen-Befehlen geben ihre Ausgabe normalerweise auf die Bildschirmkonsole aus. Mit dem Umleitungszeichen “>” kann man jedoch dafür sorgen, dass die Ausgaben woanders landen.
1 | echo Hallo >datei.txt |
leitet etwas die Ausgabe “Hallo” in die Datei datei.txt um. Existiert diese noch nicht, wird sie vom System neu erstellt. Ist sie bereits vorhanden, wird sie überschrieben (ohne weitere Rückfragen!)…
1 | echo Hallo >>datei.txt |
verhindert, dass die Datei überschrieben wird. Zwei spitze Klammern sorgen dafür, dass die Ausgabe an die Datei angehängt wird. Existiert sie noch nicht, wird sie wiederum erstellt.
Diese Umleitungen lassen sich natürlich auch für Kommandozeilenbefehle verwenden:
1 | del datei.txt >>error.log |
versucht, die Datei datei.txt zu löschen. Die Ausgaben des Befehls werden dabei in die Datei error.log geschrieben.
Ein bisschen Background
Für Windows sind diese Textausgaben sog. Streams. Von denen gibt es insgesamt 3 Stück:
StdOut: Ist der Standardoutput – Stream
StdErr: Dies ist der Error-Stream, also Fehlermeldungen
StdIn : ist der Stream, der an ein Programm übergeben wird.
Um bei der Ausführung eines Befehls nur die Fehlermeldungen in eine Logdatei umzuleiten, muss vor dem >-Zeichen eine 2 gesetzt werden:
1 | del datei.txt 2>>error.log |
Umleitung auf Gerätenamen
Um Anzeigen zu unterdrücken, kann man das reservierte Gerät nul benutzen. NUL ist soetwas wie der virtuelle Datenfriedhof…
1 | del datei.txt >nul |
unterdrückt alle Ausgaben des Befehls DEL.
1 | del datei.txt >prn |
leitet alle Ausgaben auf den Drucker um.
Eingaben
Wartet ein Kommandozeilenbefehl auf Benutzereingaben, so kann das System diese auch aus Dateien erhalten.
1 | date <enter.txt |
leitet an den Befehl date den Inhalt der Daten enter.txt weiter. (In diesem Fall wartet date auf die Eingabe eines neuen Datums. Wenn sich in der Datei enter.txt nur die Ascii-Zeichen 10+13 befinden (LF+CR), wird die Eingabe des neuen Datum automatisch übersprungen.)
[...] 1: Einleitung Teil 2: Der Befehl ECHO Teil 3: Hier gehts lang: Umleitungen Teil 4: Im schön sauber bleiben: Filter Teil 5: Labels und GoTos Teil 6: Arbeiten mit Laufwerken [...]
[...] auf dem Bildschirm aus. Diese Ausgabe kann man umleiten, wie wir bereits beim Thema Umleitungen kennengelernt haben. Allerdings kann man die Ausgabe eines Befehls auch an einen sogenannten Filter [...]