Подтвердить что ты не робот

Запретить вывод команд не-PowerShell?

Я запускаю команду

hg st

а затем проверить его $LASTEXITCODE, чтобы проверить наличие ртути в текущем каталоге. Я не забочусь о его выходе и не хочу показывать его моим пользователям.

Как подавить ВСЕ вывод, успех или ошибку?

Поскольку mercurial не является командлетом PowerShell hg st | Out-Null, он не работает.

4b9b3361

Ответ 1

Out-Null отлично работает с командами non-PowerShell. Однако он не подавляет вывод на STDERR, только на STDOUT. Если вы хотите подавить вывод на STDERR, вы должны перенаправить этот файловый дескриптор на STDOUT, прежде чем передать вывод в Out-Null:

hg st 2>&1 | Out-Null

2> перенаправляет весь вывод из STDERR (дескриптор файла # 2). &1 объединяет перенаправленный вывод с выходом из STDOUT (дескриптор файла # 1). Затем объединенный выход печатается на STDOUT, откуда труба может передать его в STDIN следующей команды в конвейере (в данном случае Out-Null). Подробнее см. Get-Help about_Redirection.