Freigeben über


Umleiten von Fehlermeldungen von der Eingabeaufforderung: STDERR/STDOUT

In diesem Artikel werden Fehlermeldungen von der Eingabeaufforderung umgeleitet.

Originalproduktversion: Visual C++
Ursprüngliche KB-Nummer: 110930

Zusammenfassung

Wenn Sie die Ausgabe einer Anwendung mit dem > Symbol umleiten, werden fehlermeldungen weiterhin auf dem Bildschirm gedruckt. Dies liegt daran, dass Fehlermeldungen häufig anstelle des Standardoutstreams an den Standardfehlerdatenstrom gesendet werden.

Die Ausgabe einer Konsolenanwendung (Eingabeaufforderung) oder eines Befehls wird häufig an zwei separate Datenströme gesendet. Die reguläre Ausgabe wird an StandardOut (STDOUT) gesendet, und die Fehlermeldungen werden an Den Standardfehler (STDERR) gesendet. Wenn Sie die Konsolenausgabe mit dem > Symbol umleiten, leiten Sie nur STDOUT um. Um STDERR umzuleiten, müssen Sie für das Umleitungssymbol angeben 2> . Dadurch wird der zweite Ausgabedatenstrom ausgewählt, der STDERR ist.

Beispiel

Der Befehl dir file.xxx (in dem file.xxx nicht vorhanden ist) zeigt die folgende Ausgabe an:

Volume in Laufwerk F ist Candy Cane Volume Seriennummer ist 34EC-0876
Datei nicht gefunden

Wenn Sie die Ausgabe mithilfe dir file.xxx > nuldes NUL-Geräts umleiten, wird weiterhin die Fehlermeldung angezeigt:

Datei nicht gefunden

Verwenden Sie den folgenden Befehl, um die Fehlermeldung an NUL umzuleiten:

dir file.xxx 2> nul

Oder Sie können die Ausgabe an eine Stelle und die Fehler an eine andere umleiten.

dir file.xxx > output.msg 2> output.err

Sie können die Fehler und die Standardausgabe in eine einzelne Datei drucken, indem Sie den &1 Befehl verwenden, um die Ausgabe für STDERR an STDOUT umzuleiten und dann die Ausgabe von STDOUT an eine Datei zu senden:

dir file.xxx 1> output.msg 2>&1