Windows: перенаправлення stdout та stderror ні до чого


33

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

command > out.txt 2>&1

Раніше я використовував command > /dev/nullсвій вікно CentOS, але не можу знайти подібну річ для Windows.


Я сподіваюся, що ви використовували command > /dev/nullу своєму CentOS.
Курт Пфайфл

@pipitas все, що я робив, працював: D
Alec Gorge

Якщо ви дійсно використовували command > /bin/nullCentOS, ви створили загальний файл файлів, названий /bin/nullу вашій системі. Ви можете сказати: "Це спрацювало!" , якщо хочете. Цей файл тепер містить вихідний файл stdout та stderr command. Зазвичай /bin/там є тільки виконувані файли. І, як правило, тільки кореневому користувачеві дозволено створювати там файли. Отже, якщо цей файл є, ви виконали свою команду як root користувача ... /bin/nullзазвичай не існує - і /dev/null(про що я згадував) зазвичай використовується як "чорне ціле", де небажаний вихід повинен зникнути в ...
Курт Пфайфл

Добре, я не думав про це. Однак я впевнений, що це просто моя несправна пам'ять, оскільки я був у Windows тоді.
Алек Ущелина

Відповіді:


47

Ти хочеш command > nul 2>&1.


Спасибі! що працює. Мені потрібно почекати 12 хвилин, щоб прийняти відповідь (вимога сервера за замовчуванням)!
Алек Ущелина

7
Це лише перенаправляє stdout. Вам також потрібно > 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 (як посилається на Ranvir) вони замість цього використовують спеціальний файл /dev/null. Ці >кошти «перенаправлення» (і 2>засіб перенаправлення буфера 2 - який є вихід помилки)
Доктор J

3

Ти хочеш command > null 2>&1

nulпрацює тільки в командному рядку, тоді як nullпрацює в оболонці

Null можна використовувати в і cmd.exe для сумісності, але створює файл під назвою null.


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

Я поняття не мав. Відповідно відредагував мою відповідь.
AirCombat
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.