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.


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.


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.


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.