Redireccionar mensagens de erro da linha de comandos: STDERR/STDOUT

O suporte para o Windows XP terminou

A Microsoft terminou o suporte para o Windows XP em 8 de Abril de 2014. Esta alteração afetou as suas atualizações de software e opções de segurança. Aprenda o que isto significa para si e como pode ficar protegido.

O suporte para Windows Server 2003 terminou a 14 de Julho de 2015

A Microsoft terminou o suporte para Windows Server 2003 a 14 de Julho de 2015. Esta alteração afetou as suas atualizações de software e opções de segurança. Aprenda o que isto significa para si e como pode ficar protegido.

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática… erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 110930
Sumário
Quando o redireccionamento de saída de uma aplicação a utilizar o ">" símbolo, mensagens de erro ainda imprimam para o ecrã. Isto acontece porque as mensagens de erro frequentemente são enviadas para a sequência de erro-padrão em vez da sequência de saída padrão.

Saída de uma aplicação de consola (linha de comandos) ou o comando, muitas vezes, é enviada para duas sequências separadas. A saída normal é enviada para padrão fora (STDOUT) e as mensagens de erro são enviadas para erro-padrão (STDERR). Quando redireccionar a consola de saída utilizando o ">" símbolo, apenas está a redireccionar STDOUT. Para redireccionar STDERR tem de especificar "2 >" para o símbolo de redireccionamento. Selecciona a sequência de saída segunda, que é STDERR.

EXEMPLO

O comando "dir file.xxx" (onde file.xxx não existe) será apresentada a seguinte saída:
O volume na unidade F é doces Cane o número de série do volume é 34EC 0876

Ficheiro não encontrado
Se redireccionar a saída para o dispositivo NUL utilizar "file.xxx dir > nul", continuará a ver a mensagem de erro:
Ficheiro não encontrado
Para redireccionar a mensagem de erro para NUL, utilize o seguinte comando:
   dir file.xxx 2> nul
ou, pode redireccionar a saída para um local e os erros para outro.
   dir file.xxx > output.msg 2> output.err
pode imprimir os erros e saída padrão para um único ficheiro utilizando o comando "& 1" para redireccionar a saída para STDERR para STDOUT e, em seguida, enviar a saída de STDOUT para um ficheiro:
   dir file.xxx 1> output.msg 2>&1

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 110930 - Última Revisão: 02/20/2007 03:34:39 - Revisão: 3.3

Microsoft Windows NT Advanced Server 3.1, Microsoft Windows NT Workstation 3.1, Microsoft Windows NT Advanced Server 3.1, Microsoft Windows NT Workstation 3.51, Microsoft Windows NT Workstation 4.0 Developer Edition, Microsoft Windows XP Professional Edition, Microsoft Windows Server 2003 Standard Edition, Microsoft Windows 2000 Professional Edition

  • kbmt kbusage KB110930 KbMtpt
Comentários
" símbolo, mensagens de erro ainda imprimam para o ecrã. Isto acontece porque as mensagens de erro frequentemente são enviadas para a sequência de erro-padrão em vez da sequência de..." />
" símbolo, mensagens de erro ainda imprimam para o ecrã. Isto acontece porque as mensagens de erro frequentemente são enviadas para a sequência de erro-padrão em vez da sequência de..." />
ERROR: at System.Diagnostics.Process.Kill() at Microsoft.Support.SEOInfrastructureService.PhantomJS.PhantomJSRunner.WaitForExit(Process process, Int32 waitTime, StringBuilder dataBuilder, Boolean isTotalProcessTimeout)