Как отправить сообщение в stderr из cmd? - PullRequest
52 голосов
/ 15 июня 2011

В стандартном файле Windows .cmd я могу отправлять сообщения на стандартный вывод, выполнив:

echo message

Как мне отправить сообщение на stderr?

Пример

Допустим, у меня есть скрипт parent.cmd, содержащий:

call child.cmd 1>>stdout.log 2>>stderr.log

и ребенок, содержащий:

:: Writes a message to stdout 
:: (which in the parent is piped to stdout.log)
echo message

:: Now I want to write a message to stderr 
:: (which in the parent is piped to stderr.log)
???

Ответы [ 2 ]

58 голосов
/ 15 июня 2011

Вы можете попробовать перенаправить дескриптор STDOUT на дескриптор STDERR. В вашем дочернем процессе выполните эхо с перенаправлением дескриптора:

:: Writes a message to stdout 
:: (which in the parent is piped to stdout.log)
echo message

:: Now I want to write a message to stderr 
:: (which in the parent is piped to stderr.log)
echo message 1>&2

Microsoft "расплакалась"

16 голосов
/ 15 июня 2011

Попробуйте echo message 1>&2

Я только что попробовал это, и это, кажется, работает правильно, даже из пакетного файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...