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