Как перенаправить 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, в ней перечислены некоторые другие полезные комбинации.


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
легализовать
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.