Wir richten uns ein

E-Books


MS-DOS Kurs


10. Umleitung von Ein- und Ausgabe

Bis jetzt wurde bei der Bedienung ganz selbstverständlich vorausgesetzt, daß alle Eingaben von der Tastatur kommen und alle Ausgaben auf dem Bildschirm erscheinen. Warum eigentlich ? Es gibt doch noch andere Möglichkeiten: Drucker, serielle Schnittstellen und Dateien. DOS betrachtet den Bildschirm und Tastatur (zusammen Konsole) als Standard für Ein- und Ausgabe. In Beschreibungen findet man deshalb auch STDIN (für Standard Input) und STDOUT (für Standard Output). Um eine möglichst flexible Handhabung der Ein- und Ausgabe zu erreichen, wurden ab der Version 2.00 Methoden zur Umleitung (englisch Redirection) von Ein- und Ausgaben aufgenommen. So können mit dem Kleinerzeichen (<) die Herkunft der Eingaben und mit dem Größerzeichen (>) das Ziel der Ausgaben festgelegt werden. Man spricht auch von der Steuerung eines Datenstromes. Die gesamten DOS-Geräte haben wir Ihnen ja schon in einem vorhergehenden Kapitel vorgstellt: PRN oder LPT1 für den Drucker, COM1 oder AUX für die serielle Schnittstellte sowie NUL als "Papierkorb". Um also das aktuelle Verzeichnis nicht auf dem Bildschirm (wie gewohnt), sondern auf den Drucker auszugeben (Einschalten nicht vergessen !), schreiben Sie
dir > prn
Mit <CTRL><P> (<Strg><P>) geht's auch - trotzdem eine wertvolle Möglichkeit. PRN und LPT1 sowie COM1 und AUX können synonym verwendet werden.
Das Gerät NUL ist ein Scheingerät, das die umgeleiteten Daten ganz einfach verschwinden läßt. Nicht besonders wichtig, aber auch nicht sinnlos. Man kann sich damit von unliebsamen Ausschriften befreien; nützlich in langen und stets wieder verwendeten Batch-Dateien. Wenn Sie alle Dateien des Tageswerkes mit
copy *.* a:>nul
auf eine Sicherungsdiskette retten, so entfällt die Ausschrift
xxx Datei(en) kopiert
Eine Besonderheit von Dos ist, daß eine völlige Gleichbehandlung von Geräten (Konsole, Drucker) und Dateien erfolgt. An jeder Stelle, wo ein Gerät angegeben wird, kann auch eine Datei stehen. Sie können Ihr Inhaltsverzeichnis also auch in eine Datei schreiben. Versuchen Sie es mal mit
dir > dir.dat
Es wird eine Datei DIR.DAT angelegt, in der das steht, was sonst auf den Bildschirm kommt. Schauen Sie doch mal rein - mit einem Texteditor oder mit
type dir.dat
Auf diese Weise habe ich beispielsweise die Originalausschriften der Programme aufgefangen, um Sie in diesem Lehrmaterial dazustellen. Für die Beschreibung von CHKDSK wurden die Ausschriften mit
chkdsk > text
in eine Datei geleitet und dann in den Text dieses Lehrmaterials kopiert.
Die Umleitung von Ein- und Ausgabe ist aber nicht auf DOS-Kommandos beschränkt; grundsätzlich gilt gleiches für beteiligte Programme - vorausgesetzt ihre Ausgaben gehen über DOS. Sie werden aber feststellen, daß viele Programme eigene Routinen für die Ein- und Ausgabe verwenden. Angesichts Fenstertechnik und Mausbedienung: Tendenz steigend. Im Zweifelsfalle hilft nur probieren.
Die Umlenkung der Eingabe läßt sich nur selten sinnvoll anwenden. Eine der wenigen Anwendungen wurde in dem Programm Taste gezeigt.
Ist nicht beabsichtigt, bei der Ausgabeumleitung eine neue Datei anzulegen, so kann auch der Anfügeoperator (zwei Größerzeichen) eingesetzt werden. Beispiel zum Schreiben der Verzeichnisse aller Laufwerke in eine Datei:
dir a:>inhalt
dir b:>>inhalt
dir c:>>inhalt
Der erste Befehl schreibt die Ausgaben in eine Datei, die neu angelegt wird. Die weiteren Kommandos fügen ihre Ausgaben an diese Datei an, die damit immer länger wird. Die vorherigen Eintragungen gehen nicht verloren. Das Verketten von Dateien kann ja auch mit COPY und + vorgenommen werden, aber das Anfügen von Ausgaben eines Programms wird nur so erreicht. Die bis jetzt kennengelernten vielfältigen Möglichkeiten erlauben es auch, die gleiche Aktion mit verschiedenen Befehlen zu erreichen. So erfolgt die Ausgabe einer Datei auf den Drucker sowohl mit
copy datei prn
als auch mit
type datei>prn
Ist der gleiche Effekt auch mit
copy datei con>prn
zu erreichen ? Sie werden sehen, daß die Datei selbst auf dem Bildschirm erscheint und nur die Meldung des COPY-Befehls (xxx Datei(en) kopiert)
auf dem Drucker. Denn die Ausgaben des COPY-Befehls (und nur die sind umzulenken) bestehen aus den jeweiligen Ausschriften - nicht aus dem Ziel des Kopiervorganges, der eine interne Aktion des Befehls ist. So würde
copy datei>prn
auch nur die Fehlerausschrift "Datei kann nicht auf sich selbst kopiert werden" auf den Drucker bringen. Probieren Sie am besten noch ein wenig.

(c) Jürgen Richter