How do I send a message to stderr from cmd?
Batch FileCmdBatch File Problem Overview
In a standard windows .cmd file I can send messages to stdout simply by doing:
echo message
How can I send a message to stderr?
Example:
Let's say I have the script parent.cmd containing:
call child.cmd 1>>stdout.log 2>>stderr.log
and a child containing:
:: 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)
???
Batch File Solutions
Solution 1 - Batch File
You can try redirecting the handle of STDOUT to the handle of STDERR. In your child process, perform the echo with a handle redirect:
:: 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
Solution 2 - Batch File
Try echo message 1>&2
I've just tried this and it seems to work correctly, even from within a batch file.