У меня есть приложение, которое записывает много шума в stderr и ДЕЙСТВИТЕЛЬНО замедляет выполнение приложения. Я хотел бы перенаправить этот вывод на null. Возможно ли это с помощью cmd.exe?
Однако следующее будет делать почти противоположное тому, что некоторые могут ожидать 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: внешнее перенаправление не влияет на внутреннее.
@command > nul 2>&1
Ответы:
Прочитать страницу Использование операторов перенаправления команд . Помимо конструкции «2>», упомянутой Tanuki Software, в ней перечислены некоторые другие полезные комбинации.
источник
copy foo.txt con >> bar 2>nul
. bar будет содержать текст, который скопировал один файл (ы), а консоль будет содержать содержимое foo.txt .@for /L %C in (1,1,10) do @type nonexistent 2> nul
это не производит десять пустых строк.con
это не синоним STDOUT; это псевдофайл, связанный с реальной консолью, поэтому перенаправление на него не влияет. Немного похоже на Linuxish(cat /proc/version > /dev/tty) > bar
: внешнее перенаправление не влияет на внутреннее.stderr
.