O que faz "2>&1" num comando do Windows?
ping -n 40 127.0.0.1 > NUL 2>&1
Eu sei a partir desta pergunta que tudo até à NUL faz o script dormir por 39 segundos. Mas não sei o que o resto do comando faz.
O que faz o2>&1
?
1 answers
A decompor a linha
ping -n 40 127.0.0.1
Envie 40 pacotes de ping para a máquina local. Se não houver nenhum problema, o comportamento padrão é esperar um segundo entre os pacotes, então ele gera um atraso de 39 segundos
>nul or 1>nul
Redirecciona qualquer coisa escrita para o fluxo de saída padrão (fluxo número 1) para o dispositivo nul
. Qualquer coisa enviada para este dispositivo é descartada. O efeito é que toda a saída normal do comando ping
está escondida.
2>&1
Isto redirecciona tudo o que for escrito para o fluxo de erro padrão (fluxo número 2). Como no caso anterior, isto é feito para se esconder de saída (erros, neste caso), mas, em vez de diretamente a pedir para escrever para o nul
dispositivo (que poderia ter feito 2>nul
), esta sintaxe pedidos para enviar dados no fluxo de erro padrão para uma cópia do identificador utilizado no fluxo de saída padrão.