Redirecionar a saída da linha de comando do Windows para um arquivo de texto

Redirecionar a saída da linha de comando do Windows para um arquivo de texto

Uma das maneiras mais úteis de registrar e solucionar problemas do comportamento de comandos ou trabalhos em lote que você executa no Windows é redirecionar a saída para um arquivo.

No entanto, existem algumas maneiras diferentes de redirecionar gravações de linha de comando para um arquivo. A opção que você escolher depende de como você deseja ver sua saída de comando.

Índice

    Isso ocorre porque a saída padrão para o comando foi redirecionada para um arquivo chamado MyOutput.TXT. O arquivo agora existe no mesmo diretório em que você executou o comando. A saída de erro padrão ainda é exibida como normalmente.

    Observação: Tenha cuidado para alterar o Active Directory para o prompt de comando antes de executar o comando. Dessa forma, você saberá onde os arquivos de saída são armazenados.

    Você pode visualizar a saída padrão que foi para o arquivo digitando “MyOutput.txt ”na janela de comando. Isso abrirá o arquivo de texto no seu visualizador de arquivo de texto padrão. Para a maioria das pessoas, isso geralmente é um bloco de notas.exe.

    Na próxima vez que você executar o mesmo comando, o arquivo de saída anterior será excluído. Um novo arquivo de saída será recriado com a saída do comando mais recente.

    Redirecionar a saída padrão grava para o mesmo arquivo

    E se você não quiser substituir o mesmo arquivo? Outra opção é usar >> em vez de> redirecionar para um arquivo de saída. No caso deste exemplo, você digitaria:

    DIR TEST.EXE >> MyOutput.TXT

    Você verá a mesma saída (apenas o erro).

    Mas, neste caso, em vez de substituir o arquivo de saída, este comando anexa a nova saída ao arquivo de saída existente.

    Toda vez que você executa um comando e anexa a saída a um arquivo, ele escreverá a nova saída padrão no final do arquivo existente.

    Redirecionar o erro padrão para um arquivo

    Da mesma maneira que você pode redirecionar gravações de saída padrão para um arquivo, você também pode gerar o fluxo de erro padrão para um arquivo.

    Para fazer isso, você precisará adicionar 2> até o final do comando, seguido pelo arquivo de erro de saída que você deseja criar.

    Neste exemplo, você digitará o comando:

    DIR TEST.exe> myOutput.txt 2> saída.errar

    Isso envia o fluxo de saída padrão para o MyOutput.txt e o fluxo de erro padrão para saída.errar. O resultado é que nenhum fluxo de saída é exibido na janela do console.

    No entanto, você pode ver as mensagens de erro digitando saída.errar. Isso abrirá o arquivo no seu visualizador de arquivo de texto padrão.

    Como você pode ver, qualquer mensagem de erro do comando é emitida para o arquivo de erro. Assim como na saída padrão, você pode usar >> em vez.

    Redirecionar todas as gravações de saída para o mesmo arquivo

    Todas as abordagens acima resultam em vários arquivos. Um arquivo é para o fluxo de saída padrão e o outro é para o fluxo de erro padrão.

    Se você deseja incluir esses dois saídas no mesmo arquivo, você também pode fazer isso. Para fazer isso, você só precisa redirecionar toda a saída para o mesmo arquivo usando o seguinte comando.

    DIR TEST.exe 1> myoutput.txt 2> & 1

    Veja como esse comando funciona:

    • A saída padrão é direcionada para o arquivo de saída identificado pela saída número 1.
    • A saída de erro padrão identificada pelo número 2 é redirecionada para o arquivo de saída identificado pelo número 1.

    Isso anexará a saída de erro ao final da saída padrão.

    Esta é uma maneira útil de ver toda a saída para qualquer comando em um arquivo.

    Padrão de silenciamento ou fluxos de saída de erro

    Você também pode desativar a saída padrão ou o erro padrão redirecionando a saída para um NUL em vez de um arquivo.

    Usando o exemplo acima, se você deseja apenas saída padrão e nenhum erro padrão, poderá usar o seguinte comando:

    DIR TEST.exe 1> myoutput.TXT 2> NUL

    Isso resultará no mesmo arquivo de saída do primeiro exemplo acima, onde você redirecionou apenas a saída padrão, mas com este comando o erro não ecoará dentro do console. Ele também não criará um arquivo de log de erro.

    Isso é útil se você não se importa com nenhum erro e não quiser que eles se tornem um incômodo.

    Você pode executar qualquer um dos mesmos comandos de saída acima de um arquivo BAT e a saída dessa linha irá para o arquivo de saída que você especificar. Esta é uma maneira útil de ver se algum comando dentro de um arquivo de bat tinham erros quando eles tentaram correr.