6

Когда запускается мой пакетный скрипт, я хочу, чтобы в командной строке отображались любые ошибки, поэтому пользователь сразу же видит его, подавляя при этом все стандартные выводимые данные.

Но я хочу, чтобы все было выведено в файл журнала. Как мне это сделать?

Другими словами,

+---------+
|         | --- stderr ---------> Console
| Program |
|         | --- stdout/err -----> Log file
+---------+

2 ответа2

2

Существуют различные версии tee которые можно загрузить (или создать с помощью VBS или JScript), и вы можете перенаправить stderr в stdout и передать все через tee. Но тогда вы получите и stdout, и stderr как для консоли, так и для файла.

Я считаю, что невозможно отправить оба файла, но выборочно отправить stderr на консоль, если только в содержимом всех ошибок нет чего-то особенного, что может быть использовано для выявления ошибки. Я сомневаюсь, что существует непротиворечивый уникальный идентификатор для ошибок, но если это так, решение может выглядеть примерно так:

yourScript 2>&1 | tee output.log | find "Error:" 
1

Если у вас нет tee:

yourScript 2>&1 > output.log & type output.log | find "Error:"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .