Windows: перенаправить stdout и stderror в ничто


33

У меня есть команда, которую я выполняю, производит тонну выходных данных, я хочу, чтобы вывод тишины без записи в файл. Я использовал следующее, чтобы отправить все выходные данные в файл, но опять же я не хочу никакого вывода файла:

command > out.txt 2>&1

Я использовал command > /dev/nullна своей коробке CentOS раньше, но я не могу найти аналогичную вещь для Windows.


Я надеюсь, что вы использовали command > /dev/nullна вашем CentOS.
Курт Пфайфл

@pipitas все, что я сделал, это сработало: D
Алек Ущелье

Если вы действительно использовали command > /bin/nullCentOS, вы создали общий файл с именем /bin/nullв вашей системе. Вы можете сказать: «Это сработало!» , если хочешь. Этот файл теперь содержит вывод stdout и stderr вашего command. Обычно в /bin/нем присутствуют только исполняемые файлы. И, как правило, только пользователь root может создавать файлы там. Таким образом, если этот файл есть, вы выполнили свою команду как пользователь root ... /bin/nullобычно не существует - и /dev/null(который я упомянул) обычно используется как "черное целое", где нежелательный вывод должен исчезнуть в ...
Курт Пфайфл

Хороший вопрос, я не думал об этом. Тем не менее, я уверен, что это просто моя неисправная память, потому что я был на Windows в то время.
Ущелье Алек

Ответы:


47

Вы хотите command > nul 2>&1.


Благодарность! это работает. Мне нужно подождать 12 минут, чтобы принять ответ (требование к серверу)!
Алек Ущелье

7
Это только перенаправляет стандартный вывод. Вам также нужно > nul 2>&1или 2> nulубить stderr.
grawity

Да, я знаю это, но спасибо, что упомянули это для тех, кто посещает этот вопрос!
Алек Ущелье

просто чтобы добавить, я получаю ошибку «Отказано в доступе» при использовании: sudo hostname -f 2> nul, тогда как следующая команда работала хорошо: sudo hostname -f 2> / dev / null Для тех, у кого возникли проблемы с разрешениями при использовании nul
Ranvir

1
@AminM nul- это специальное ключевое слово Windows для нулевого вывода (т.е. отбрасывать вывод). В * nix-системах (на что ссылается Ранвир) вместо этого они используют специальный файл /dev/null. Эти >средства «перенаправление» (и 2>средство перенаправление буфера 2 - который является выход ошибки)
Доктор J

3

Вы хотите command > null 2>&1

nulработает только в командной строке, тогда как nullработает в powershell

Null может использоваться в и cmd.exe для совместимости, но создает файл с именем null.


3
Командная строка - cmd.exe. '> null' создает файл с именем 'null', в который вы направляете файлы из cmd.exe и из PowerShell.
г-н Смайт

Я понятия не имел. Правильно отредактировал мой ответ.
AirCombat
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.