Umleiten von Fehlermeldungen von der Eingabeaufforderung: STDERR/STDOUT

In diesem Artikel wird das Umleiten von Fehlermeldungen von der Eingabeaufforderung beschrieben.

Originalversion des Produkts:   Visual C++
Ursprüngliche KB-Nummer:   110930

Zusammenfassung

Wenn Sie die Ausgabe einer Anwendung mithilfe des > Symbols umleiten, werden fehlermeldungen weiterhin auf dem Bildschirm gedruckt. Dies liegt daran, dass Fehlermeldungen häufig an den Standardfehlerdatenstrom anstelle des Standardausgangsdatenstroms 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 Standard Out (STDOUT) und die Fehlermeldungen an Standard Error (STDERR) gesendet. Wenn Sie die Konsolenausgabe mithilfe des > Symbols 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:

Volumen im 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 einer einzelnen 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