Windows: rediriger stdout et stderror vers rien


33

J'ai une commande que j'exécute produit une tonne de sortie, je veux faire taire la sortie sans écrire dans un fichier. J'ai utilisé ce qui suit pour envoyer toutes les sorties dans un fichier, mais encore une fois, je ne veux aucune sortie de fichier:

command > out.txt 2>&1

Je l'ai déjà utilisé command > /dev/nullsur ma boîte CentOS, mais je ne trouve rien de similaire pour Windows.


J'espère que vous l'avez utilisé command > /dev/nullsur votre CentOS.
Kurt Pfeifle

@pipitas tout ce que j'ai fait a fonctionné: D
Alec Gorge

Si vous avez effectivement utilisé command > /bin/nullsur CentOS, vous avez créé un fichier de fichier commun nommé /bin/nullsur votre système. Vous pouvez dire «ça a marché! , si tu veux. Ce fichier contient maintenant la sortie stdout et stderr de votre command. Habituellement, /bin/il n'y a que des fichiers exécutables. Et généralement, seul l' utilisateur root est autorisé à y créer des fichiers. Donc, si ce fichier est là, vous avez exécuté votre commande en tant qu'utilisateur root ... /bin/nulln'existe généralement pas - et /dev/null(ce que j'ai mentionné) est généralement utilisé comme le `` tout noir '' où la sortie indésirable devrait disparaître dans ...
Kurt Pfeifle

Bon point, je n'y avais pas pensé. Cependant, je suis presque sûr que c'est juste ma mémoire défectueuse parce que j'étais sous Windows à l'époque.
Alec Gorge

Réponses:


47

Tu veux command > nul 2>&1.


Merci! ça marche. Je dois cependant attendre 12 minutes pour accepter la réponse (exigence de défaut de serveur)!
Alec Gorge

7
Cela ne redirige que stdout. Vous avez également besoin > nul 2>&1ou 2> nulpour tuer stderr.
grawity

Oui, je le sais, mais merci de l'avoir mentionné pour ceux qui visitent cette question!
Alec Gorge

juste pour ajouter, je recevais une erreur de refus d'autorisation en utilisant: sudo hostname -f 2> nul alors que la commande suivante fonctionnait bien: sudo hostname -f 2> / dev / null Pour ceux qui manquent de permission lors de l'utilisation de nul
Ranvir

1
@AminM nulest le mot-clé spécial de Windows pour une sortie nulle (c'est-à-dire rejeter la sortie). Sur les systèmes basés sur * nix (comme Ranvir fait référence), ils utilisent à la place le fichier spécial /dev/null. Le >moyen "rediriger" (et 2>signifie le tampon de redirection 2 - qui est la sortie d'erreur)
Doktor J

3

Tu veux command > null 2>&1

nulne fonctionne que dans l'invite de commande alors qu'il nullfonctionne en PowerShell

Null peut être utilisé dans et cmd.exe pour des raisons de compatibilité, mais crée un fichier appelé null.


3
L'invite de commandes est cmd.exe. '> null' crée un fichier appelé 'null' avec tout ce que vous y dirigez à partir de cmd.exe et de PowerShell.
M. Smythe

Je n'en avais aucune idée. J'ai dûment modifié ma réponse.
AirCombat
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.