Windows: stdout und stderror auf nichts umleiten

33

Ich habe einen Befehl, den ich ausführe und der eine Tonne Ausgabe erzeugt. Ich möchte die Ausgabe stumm schalten, ohne in eine Datei zu schreiben. Ich habe Folgendes verwendet, um die gesamte Ausgabe in eine Datei zu senden, möchte aber auch hier keine Dateiausgabe:

command > out.txt 2>&1

Ich habe command > /dev/nullmeine CentOS-Box bereits verwendet, kann aber für Windows keine ähnliche Funktion finden.

Alec Gorge
quelle
Ich hoffe du hast es command > /dev/nullauf deinem CentOS benutzt.
Kurt Pfeifle
@ Pipitas, was auch immer ich tat, es hat funktioniert: D
Alec Gorge
Wenn Sie in der Tat unter command > /bin/nullCentOS verwendet haben, haben Sie eine gemeinsame Datei mit dem Namen "file" /bin/nullauf Ihrem System erstellt. Sie können sagen: "Es hat funktioniert!" , falls Sie es wollen. Diese Datei enthält nun die stdout- und stderr-Ausgabe Ihres command. In der Regel /bin/gibt es nur ausführbare Dateien. Und normalerweise darf nur der Root- Benutzer dort Dateien erstellen. Wenn diese Datei also vorhanden ist, haben Sie Ihren Befehl als Root-Benutzer ausgeführt ... existiert /bin/nullnormalerweise nicht - und /dev/null(was ich erwähnt habe) wird normalerweise als "schwarzes Ganzes" verwendet, in dem unerwünschte Ausgaben verschwinden sollten ...
Kurt Pfeifle
Guter Punkt, daran hatte ich nicht gedacht. Ich bin mir jedoch ziemlich sicher, dass es nur mein fehlerhafter Speicher ist, da ich zu der Zeit unter Windows war.
Alec Gorge

Antworten:

47

Sie möchten command > nul 2>&1.

Jed Daniels
quelle
Vielen Dank! das funktioniert. Ich muss 12 Minuten warten, um die Antwort zu akzeptieren (Serverfehler erforderlich)!
Alec Gorge
7
Dies leitet nur stdout weiter. Sie brauchen > nul 2>&1oder müssen 2> nulauch stderr töten.
Grawity
Ja, das weiß ich, aber danke, dass du es für andere erwähnt hast, die diese Frage besuchen!
Alec Gorge
Nur um hinzuzufügen, ich bekam die Erlaubnis verweigert Fehler bei der Verwendung von: sudo Hostname -f 2> nul, während der folgende Befehl gut funktionierte: sudo Hostname -f 2> / dev / null Für diejenigen, die bei der Verwendung von nul auf Erlaubnisprobleme stoßen
Ranvir
1
@AminM nulist das spezielle Schlüsselwort von Windows für eine Null-Ausgabe (dh Ausgabe verwerfen). Auf * nix-basierten Systemen (auf die sich Ranvir bezieht) wird stattdessen die spezielle Datei verwendet /dev/null. Das >bedeutet "umleiten" (und 2>bedeutet Umleitungspuffer 2 - das ist die Fehlerausgabe)
Doktor J
3

Sie wollen command > null 2>&1

nulFunktioniert nur in der Eingabeaufforderung, während nullin Powershell funktioniert

Null kann aus Kompatibilitätsgründen in und cmd.exe verwendet werden, erstellt jedoch eine Datei mit dem Namen null.

AirCombat
quelle
3
Die Eingabeaufforderung lautet cmd.exe. '> null' erstellt eine Datei mit dem Namen 'null', auf die Sie von cmd.exe und von PowerShell aus direkt zugreifen.
Mr. Smythe
Ich hatte keine Ahnung. Meine Antwort wurde ordnungsgemäß bearbeitet.
AirCombat