Windows: reindirizza a zero stdout e stderror


33

Ho un comando che sto eseguendo produce una tonnellata di output, voglio mettere a tacere l'output senza scrivere su un file. Ho usato quanto segue per inviare tutto l'output a un file, ma di nuovo non voglio alcun output di file:

command > out.txt 2>&1

Ho usato command > /dev/nullsulla mia scatola CentOS prima, ma non riesco a trovare una cosa simile per Windows.


Spero che tu abbia usato command > /dev/nullil tuo CentOS.
Kurt Pfeifle,

@pipitas qualunque cosa ho fatto ha funzionato: D
Alec Gorge

Se effettivamente utilizzato command > /bin/nullsu CentOS, è stato creato un file file comune denominato /bin/nullsul proprio sistema. Puoi dire "Ha funzionato!" , se vuoi. Questo file ora contiene l'output stdout e stderr del tuo command. Di solito, /bin/ci sono solo file eseguibili. E di solito, solo l' utente root può creare file lì. Quindi, se quel file è lì, hai eseguito il tuo comando come utente root ... di /bin/nullsolito non esiste - e /dev/null(che ho menzionato) di solito è usato come 'tutto nero' dove l'output indesiderato dovrebbe scomparire in ...
Kurt Pfeifle,

Bene, non ci avevo pensato. Tuttavia, sono abbastanza sicuro che sia solo la mia memoria difettosa perché all'epoca ero su Windows.
Alec Gorge,

Risposte:


47

Tu vuoi command > nul 2>&1.


Grazie! che funzioni. Devo aspettare 12 minuti per accettare la risposta (requisito serverfault)!
Alec Gorge,

7
Questo reindirizza solo stdout. Hai anche bisogno > nul 2>&1o 2> nuldi uccidere stderr.
Grawity

Sì, lo so, ma grazie per averlo menzionato per gli altri che visitano questa domanda!
Alec Gorge,

solo per aggiungere, mi è stato sempre il permesso negato errore durante l'utilizzo: sudo hostname -f 2> nul mentre seguente comando ha funzionato bene: sudo hostname -f 2> / dev / null Per coloro che gestiscono fuori nel problema di autorizzazione durante l'utilizzo di nul
Ranvir

1
@AminM nulè la parola chiave speciale di Windows per un output nullo (ovvero l'output di scarto). Su sistemi basati su * nix (come si riferisce a Ranvir) usano invece il file speciale /dev/null. I >mezzi "reindirizzamento" (e 2>mezzi reindirizzare tampone 2 - che è l'uscita di errore)
Doktor J

3

Tu vuoi command > null 2>&1

nulFunziona solo nel prompt dei comandi mentre nullfunziona in PowerShell

È possibile utilizzare null e cmd.exe per la compatibilità, ma crea un file chiamato null.


3
Il prompt dei comandi è cmd.exe. '> null' crea un file chiamato 'null' con qualunque cosa tu stia dirigendo in esso da cmd.exe e da PowerShell.
Mr. Smythe,

Non ne avevo idea. Ho debitamente modificato la mia risposta.
AirCombat,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.