2011-06-15 6 views
40

Dans une fenêtre standard .CMD Je peux envoyer des messages à stdout simplement en faisant:Comment envoyer un message à stderr à partir de cmd?

echo message 

Comment puis-je envoyer un message à stderr?

Exemple:

Disons que j'ai le script parent.cmd contenant:

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

et un enfant contenant:

:: 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) 
??? 

Répondre

45

Vous pouvez essayer de rediriger le handle de STDOUT vers le handle de STDERR. Dans votre processus d'enfant, effectuez l'écho avec une redirection de poignée:

:: 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 'splainin it

15

Essayez echo message 1>&2

Je Je viens d'essayer cela et il semble pour fonctionner correctement, même à partir d'un fichier batch.

Questions connexes