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.