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?

Ignacio Soler Garcia
źródło
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.

atzz
źródło
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
3
Przywołana strona jest tutaj: technet.microsoft.com/en-us/library/bb490982.aspx
zalegalizuj