Windows: redirecione stdout e stderror para nada

33

Eu tenho um comando que estou executando produz uma tonelada de saída, quero silenciar a saída sem gravar em um arquivo. Usei o seguinte para enviar toda a saída para um arquivo, mas novamente não quero nenhuma saída de arquivo:

command > out.txt 2>&1

Eu usei command > /dev/nullna minha caixa do CentOS antes, mas não consigo encontrar uma coisa semelhante para o Windows.

Alec Gorge
fonte
Espero que você tenha usado command > /dev/nullno seu CentOS.
Kurt Pfeifle
@pipitas tudo o que eu fiz funcionou: D
Alec Gorge
Se você realmente usou command > /bin/nullno CentOS, criou um arquivo comum nomeado /bin/nullem seu sistema. Você pode dizer 'Funcionou!' , se você quiser. Este arquivo agora contém a saída stdout e stderr do seu arquivo command. Normalmente, /bin/existem apenas arquivos executáveis. E, geralmente, somente o usuário root tem permissão para criar arquivos lá. Portanto, se esse arquivo estiver lá, você executou seu comando como usuário root ... /bin/nullgeralmente não existe - e /dev/null(que eu mencionei) geralmente é usado como o 'todo preto' onde a saída indesejada deve desaparecer em ...
Kurt Pfeifle
Bom ponto, eu não tinha pensado nisso. No entanto, tenho certeza de que é apenas minha memória defeituosa, porque eu estava no Windows na época.
Alec Gorge

Respostas:

47

Você quer command > nul 2>&1.

Jed Daniels
fonte
obrigado! isso funciona. Eu preciso esperar 12 minutos para aceitar a resposta (requisito de falha no servidor)!
Alec desfiladeiro
7
Isso redireciona apenas o stdout. Você também precisa > nul 2>&1ou 2> nulmatar stderr.
grawity
Sim, eu sei disso, mas obrigado por mencioná-lo para outras pessoas que visitam esta pergunta!
Alec desfiladeiro
apenas para adicionar, estava recebendo erro de permissão negada ao usar: sudo hostname -f 2> nul, enquanto o seguinte comando funcionou bem: sudo hostname -f 2> / dev / null Para aqueles que acabam com problemas de permissão enquanto usam nul
Ranvir
11
@AminM nulé a palavra-chave especial do Windows para uma saída nula (ou seja, descartar saída). Em sistemas baseados em * nix (como Ranvir está se referindo), eles usam o arquivo especial /dev/null. O >meio "redirecionar" (e 2>significa o buffer de redirecionamento 2 - que é a saída de erro)
Doktor J
3

Você quer command > null 2>&1

nulsó funciona no prompt de comando, enquanto nullfunciona no PowerShell

Nulo pode ser usado no cmd.exe e para compatibilidade, mas cria um arquivo chamado nulo.

AirCombat
fonte
3
O prompt de comando é cmd.exe. '> null' cria um arquivo chamado 'null' com o que você direciona a partir do cmd.exe e do PowerShell.
Sr. Smythe
Eu não fazia ideia. Editei devidamente a minha resposta.
AirCombat 29/07