Equivalente a (foo &>/dev/null &) no shell do Windows

Equivalente a (foo &>/dev/null &) no shell do Windows

Eu gostaria de executar um aplicativo específico (vamos chamá-lo foo) a partir da linha de comando, mas não quero que ele atrapalhe o terminal, colocando qualquer lixo no terminal a partir de sua saída ou fluxos de erro, e também quero que ele mantenha rodando mesmo se eu fechar o terminal. No Bash, posso fazer isso usando (foo &>/dev/null &), mas não sei como faria isso no shell do Windows. Alguém poderia me ajudar, por favor?

Responder1

A maneira como você faria isso no Windows é:

start /B foo > NUL 2>&1

O startcomando iniciará um processo desanexado, um efeito semelhante ao &. A /Bopção impede starta abertura de uma nova janela de terminal se o programa que você está executando for um aplicativo de console (é desnecessário para aplicativos GUI). The >tem o mesmo significado que no Linux e NULé equivalente no Windows a /dev/null. O 2>&1nofimirá redirecionar stderr para stdout, que irá todos para NUL.

Responder2

Não há equivalente direto.

Conforme descritoaqui, chamar um programa de forma que não bloqueie o chamador pode ser feito com o startcomando, usando a /bopção. Não sei sobre o redirecionamento de saída neste caso. Talvez seja necessário envolvê-lo em um arquivo em lote.

Quanto a > /dev/null, é fácil: >NUL. NULé um nome de dispositivo DOS. O operador abreviado, entretanto, não está disponível. Você terá que seguir o caminho manual com 2>&1.Aquiaqui estão mais algumas informações sobre isso.

informação relacionada