Як перенаправити stderr на нуль у cmd.exe


122

У мене є додаток, який записує багато шуму на більш жорсткий, і дійсно уповільнює виконання програми. Я хотів би перенаправити цей висновок на null. Чи можливо це за допомогою cmd.exe?


23
ось так: команда 2> nul
Naytzyrhc

3
Чи можете ви поставити це як відповідь. Це працює чудово!
Ігнасіо Солер Гарсія

2
Дивіться також на superuser: > / dev / null для Windows
hippietrail

Я хочу, щоб ви повністю замовкли команду (stdout та stderr) do@command > nul 2>&1
kofifus

Відповіді:


171
Your DOS command 2> nul

Прочитати сторінку Використання операторів переадресації команд . Окрім конструкції "2>", згаданої Tanuki Software, вона містить перелік інших корисних комбінацій.


1
Однак наступне буде робити майже протилежне тому, що деякі можуть очікувати copy foo.txt con >> bar 2>nul. рядок буде містити текст, який копіював один файл (и), а консоль міститиме вміст foo.txt .
Патрік Фромберг

1
@Mawg Я не думаю, що це робить. Це, мабуть, щось специфічне для вашого сценарію використання. Справа в точці: @for /L %C in (1,1,10) do @type nonexistent 2> nulце НЕ виробляє десять порожніх рядків.
atzz

2
@PatrickFromberg Це тому con, що не є синонімом STDOUT; це псевдофайл, пов’язаний з фактичною консоллю, тому перенаправлення на нього не впливає. Дещо схоже на Linuxish (cat /proc/version > /dev/tty) > bar: зовнішнє переадресація не вплине на внутрішнє.
atzz

1
@SamHabiel Не дуже. Питання про те stderr.
atzz

3
Посилання на сторінку тут: technet.microsoft.com/en-us/library/bb490982.aspx
легалізувати
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.