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.


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.


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.


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,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.