Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описывается перенаправление сообщений об ошибках из командной строки.
Исходная версия продукта: Visual C++
Исходный номер базы знаний: 110930
Итоги
При перенаправлении выходных данных из приложения с помощью символа >
сообщения об ошибках по-прежнему печатаются на экране. Это связано с тем, что сообщения об ошибках часто отправляются в поток стандартных ошибок вместо потока "Стандартный исходящий".
Выходные данные из приложения консоли (командной строки) часто отправляются в два отдельных потока. Регулярные выходные данные отправляются в standard Out (STDOUT) и сообщения об ошибках отправляются в стандартную ошибку (STDERR). При перенаправлении выходных данных консоли с помощью символа >
вы будете перенаправлены только STDOUT. Чтобы перенаправить STDERR, необходимо указать 2>
для символа перенаправления. При этом выбирается второй выходной поток, который является STDERR.
Пример
dir file.xxx
Команда (где file.xxx не существует) отобразит следующие выходные данные:
Том в диске F — Candy Cane Volume Serial Number is 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