Перенаправление сообщений об ошибках из командной строки: STDERR/STDOUT
В этой статье описывается перенаправление сообщений об ошибках из командной строки.
Исходная версия продукта: Visual C++
Оригинальный номер базы знаний: 110930
Сводка
При перенаправлении выходных данных из приложения с помощью символа >
сообщения об ошибках по-прежнему печатаются на экране. Это связано с тем, что сообщения об ошибках часто отправляются в поток стандартных ошибок, а не в поток стандартного выхода.
Выходные данные из приложения или команды консоли (командной строки) часто отправляются в два отдельных потока. Обычные выходные данные отправляются в стандартный out (STDOUT), а сообщения об ошибках — в стандартную ошибку (STDERR). При перенаправлении выходных данных консоли с помощью символа >
вы перенаправляете только STDOUT. Чтобы перенаправить STDERR, необходимо указать 2>
для символа перенаправления. При этом выбирается второй выходной поток, который является STDERR.
Пример
dir file.xxx
Команда (где file.xxx не существует) отобразит следующие выходные данные:
Том на диске F — Candy Candy Cane Volume Serial Number — 34EC-0876
Файл не найден
Если вы перенаправляете выходные данные на устройство NUL с помощью dir file.xxx > nul
, вы по-прежнему увидите сообщение об ошибке:
Файл не найден
Чтобы перенаправить сообщение об ошибке в NUL, используйте следующую команду:
dir file.xxx 2> nul
Кроме того, можно перенаправить выходные данные в одно место, а ошибки — в другое.
dir file.xxx > output.msg 2> output.err
Вы можете вывести ошибки и стандартные выходные данные в один файл с помощью &1
команды , чтобы перенаправить выходные данные для STDERR в STDOUT, а затем отправить выходные данные из STDOUT в файл:
dir file.xxx 1> output.msg 2>&1
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по