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?
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.
@command > nul 2>&1
Odpowiedzi:
Przeczytaj stronę Korzystanie z operatorów przekierowania poleceń . Oprócz konstrukcji „2>” wspomnianej przez Tanuki Software, zawiera ona listę innych przydatnych kombinacji.
źródło
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 .@for /L %C in (1,1,10) do @type nonexistent 2> nul
czy nie produkować dziesięć linii puste.con
nie 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.stderr
.