Jak przekierować stderr do null w cmd.exe


122

Mam aplikację, która rejestruje dużo hałasu na stderr i NAPRAWDĘ spowalnia wykonywanie aplikacji. Chciałbym przekierować to wyjście do null. Czy jest to możliwe w przypadku cmd.exe?


23
w ten sposób: polecenie 2> nul
Naytzyrhc

3
Czy mógłbyś to ująć jako odpowiedź. Działa świetnie!
Ignacio Soler Garcia

2
Zobacz także na superuser: > / dev / null dla Windows
hippietrail

Chcę całkowicie wyciszyć polecenie (stdout i stderr) do@command > nul 2>&1
kofifus

Odpowiedzi:


171
Your DOS command 2> nul

Przeczytaj stronę Korzystanie z operatorów przekierowania poleceń . Oprócz konstrukcji „2>” wspomnianej przez Tanuki Software, zawiera ona listę innych przydatnych kombinacji.


1
Jednak podążanie za tym zrobi prawie odwrotnie niż niektórzy mogą się spodziewać copy foo.txt con >> bar 2>nul. bar będzie zawierał tekst skopiowany z jednego pliku (ów), a konsola będzie zawierać zawartość foo.txt .
Patrick Fromberg,

1
@Mawg Myślę, że tak nie jest. Prawdopodobnie jest to coś specyficznego dla twojego scenariusza użytkowania. Sprawa w punkcie: @for /L %C in (1,1,10) do @type nonexistent 2> nulczy nie produkować dziesięć linii puste.
atzz

2
@PatrickFromberg To dlatego, że connie jest synonimem STDOUT; jest to pseudoplik powiązany z rzeczywistą konsolą, więc przekierowanie nie ma na niego wpływu. Trochę podobne do Linuksa (cat /proc/version > /dev/tty) > bar: zewnętrzne przekierowanie nie wpłynie na wewnętrzne.
atzz

1
@SamHabiel Niezupełnie. Pytanie dotyczy stderr.
atzz

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.