Umleiten von Fehlermeldungen von der Eingabeaufforderung: STDERR/STDOUT

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

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

Zusammenfassung

Beim Umleiten der Ausgabe von einer Anwendung mithilfe des > Symbols werden weiterhin Fehlermeldungen auf dem Bildschirm ausgegeben. Dies liegt daran, dass Fehlermeldungen häufig an den Standardfehlerstream statt an den Standardoutstream gesendet werden.

Die Ausgabe einer Konsolenanwendung (Eingabeaufforderung) oder eines Befehls wird häufig an zwei separate Streams 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 Ausgabestream ausgewählt, der STDERR ist.

Beispiel

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

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

Wenn Sie die Ausgabe mit dir file.xxx > nulan das NUL-Gerät 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

Alternativ können Sie die Ausgabe an einen Ort 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