Переспрямування повідомлення про помилку, в командному рядку: STDERR/STDOUT


Загальні відомості


Під час переспрямування вихід з програми, використовуючи на ">" символ, повідомлення про помилку все одно друкувати на екрані. Це відбувається тому, повідомлення про помилку часто надсилаються стандартна помилка потоку замість стандартного з потоку.


Вивід консолі (командний рядок) програми, або команду часто надсилаються два окремих потоків. Звичайні результати буде надіслано до стандартних на (STDOUT), а повідомлення про помилки, надсилаються до стандартна помилка (STDERR). Коли переспрямовано консолі, вихід з використанням на ">" символ, ви є лише перенаправлення STDOUT. Щоб переспрямувати STDERR, ви маєте змогу "2 >" знак переспрямування. Після натискання цієї кнопки другий вихідного потоку, який є STDERR.

ПРИКЛАД

Команда "dir file.xxx" (де file.xxx відсутній), буде відображено такі результати:
Тому, що на диску F є цукерки тростини Том-порядковий номер 34EC і 0876


Файл не знайдено
Якщо він перенаправляє використання NUL пристрій виводу "dir file.xxx > nul", ви побачите повідомлення про помилку:
Файл не знайдено
Для перенаправлення NUL повідомлення про помилку, скористайтеся такою командою:
   dir file.xxx 2> nul
Також можна переспрямування виводу, одне місце, а також помилки на інший.
   dir file.xxx > output.msg 2> output.err
Переспрямування виводу на STDERR на STDOUT за допомогою команди "& 1", і потім надсилання результати STDOUT до файлу можна друкувати помилок і виводу до єдиного файлу:

   dir file.xxx 1> output.msg 2>&1