2011-06-15 15 views
40

In un file .cmd standard di Windows posso inviare messaggi a stdout semplicemente facendo:Come posso inviare un messaggio a stderr da cmd?

echo message 

Come posso inviare un messaggio a stderr?

Esempio:

Diciamo che ho il copione parent.cmd contenente:

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

e un bambino contenente:

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

risposta

45

Si può provare a reindirizzare l'handle di STDOUT all'handle di STDERR. Nel vostro processo figlio, eseguire l'eco con un redirect manico:

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

Prova echo message 1>&2

I' Ho appena provato questo e sembra funzionare correttamente, anche all'interno di un file batch.

Problemi correlati