Как перенаправить stderr на null в cmd.exe

122

У меня есть приложение, которое записывает много шума в stderr и ДЕЙСТВИТЕЛЬНО замедляет выполнение приложения. Я хотел бы перенаправить этот вывод на null. Возможно ли это с помощью cmd.exe?

Игнасио Солер Гарсия
источник
23
вот так: command 2> nul
Naytzyrhc
3
Не могли бы вы выразить это как ответ. Он отлично работает!
Игнасио Солер Гарсия,
2
См. Также о суперпользователе: > / dev / null для Windows
hippietrail
Я хочу полностью отключить команды (stdout и stderr) do@command > nul 2>&1
kofifus

Ответы:

172
Your DOS command 2> nul

Прочитать страницу Использование операторов перенаправления команд . Помимо конструкции «2>», упомянутой Tanuki Software, в ней перечислены некоторые другие полезные комбинации.

atzz
источник
1
Однако следующее будет делать почти противоположное тому, что некоторые могут ожидать copy foo.txt con >> bar 2>nul. bar будет содержать текст, который скопировал один файл (ы), а консоль будет содержать содержимое foo.txt .
Патрик Фромберг
1
@Mawg Не думаю, что это так. Вероятно, это что-то особенное для вашего сценария использования. Дело в точке: @for /L %C in (1,1,10) do @type nonexistent 2> nulэто не производит десять пустых строк.
atzz 04
2
@PatrickFromberg Это потому, что conэто не синоним STDOUT; это псевдофайл, связанный с реальной консолью, поэтому перенаправление на него не влияет. Немного похоже на Linuxish (cat /proc/version > /dev/tty) > bar: внешнее перенаправление не влияет на внутреннее.
atzz 04
1
@SamHabiel Не совсем. Вопрос в том stderr.
atzz
3
Ссылка на страницу находится здесь: technet.microsoft.com/en-us/library/bb490982.aspx
легализовать