Windows: przekieruj stdout i stderror na nic

33

Mam uruchomione polecenie, które generuje mnóstwo danych wyjściowych, chcę wyciszyć dane wyjściowe bez zapisywania do pliku. Użyłem następujących do wysłania wszystkich danych wyjściowych do pliku, ale ponownie nie chcę żadnych danych wyjściowych pliku:

command > out.txt 2>&1

Użyłem command > /dev/nullna moje pole CentOS wcześniej, ale nie mogę znaleźć coś podobnego dla Windows.

Wąwóz Alec
źródło
Mam nadzieję, że command > /dev/nullużywałeś swojego CentOS.
Kurt Pfeifle
@pipitas cokolwiek zrobiłem, zadziałało: D
Alec Gorge
Jeśli rzeczywiście korzystałeś command > /bin/nullz CentOS, utworzyłeś wspólny plik o nazwie /bin/nullo nazwie w systemie. Możesz powiedzieć „Udało się!” , Jeśli chcesz. Ten plik zawiera teraz dane wyjściowe stdout i stderr command. Zwykle /bin/są tam tylko pliki wykonywalne. I zwykle tylko użytkownik root może tworzyć tam pliki. Więc jeśli ten plik istnieje, uruchomiłeś polecenie jako użytkownik root ... /bin/nullzwykle nie istnieje - i /dev/null(o czym wspomniałem) zwykle jest używany jako „czarna całość”, w której niechciane dane wyjściowe powinny zniknąć w…
Kurt Pfeifle,
Dobrze, że o tym nie myślałem. Jestem jednak pewien, że to tylko moja wadliwa pamięć, ponieważ byłem wtedy w systemie Windows.
Alec Gorge

Odpowiedzi:

47

Chcesz command > nul 2>&1.

Jed Daniels
źródło
dzięki! to działa. Muszę jednak poczekać 12 minut, aby zaakceptować odpowiedź (wymaganie dotyczące błędu serwera)!
Alec Gorge
7
To tylko przekierowuje standardowe wyjście. Potrzebujesz także > nul 2>&1lub 2> nulzabić stderr.
grawitacja
Tak, wiem o tym, ale dziękuję, że wspomniałeś o tym innym, którzy odwiedzają to pytanie!
Alec Gorge
żeby dodać, otrzymywałem błąd odmowy uprawnień podczas używania: sudo nazwa_hosta -f 2> nul, podczas gdy następujące polecenie działało dobrze: sudo nazwa_hosta -f 2> / dev / null Dla tych, którzy mają problem z uprawnieniami podczas używania nul
Ranvir
1
@AminM nuljest specjalnym słowem kluczowym systemu Windows dla wyjścia zerowego (tj. Wyjście odrzucania ). W systemach opartych na * nix (takich jak Ranvir), zamiast tego używają specjalnego pliku /dev/null. Te >środki „przekierowanie” (i 2>oznacza przekierowanie Buffer 2 - co jest wyjście błędu)
Doktor J
3

Chcesz command > null 2>&1

nuldziała tylko w wierszu polecenia, podczas gdy nulldziała w PowerShell

W celu zapewnienia zgodności można użyć wartości NULL i cmd.exe, ale tworzy on plik o nazwie null.

AirCombat
źródło
3
Wiersz polecenia to cmd.exe. „> null” tworzy plik o nazwie „null” z dowolnym poleceniem do niego z cmd.exe i PowerShell.
Pan Smythe
Nie mam pojęcia. Właściwie zredagowałem moją odpowiedź.
AirCombat,