Как подавить вывод stderr в Powershell?
В PS script для автоматизации некоторых задач SVN у меня есть следующая функция:
function SvnUrlExists($url)
{
svn info $url | out-null 2>&1
return $?
}
Так как это явно проверяет, существует ли какой-то URL-адрес репозитория SVN, я вообще не заинтересован в выводе любой ошибки. Однако, несмотря на все, что я нашел о перенаправлении stderr
в Powershell, предлагая 2>&1
перенаправить его на stdout
, , это все еще выводит сообщение об ошибке:
svn: warning: W170000: URL 'blahblah' non-existent in revision 26762
svn: E200009: Could not display info for all targets because some targets don't exist
К сожалению, это сильно испортило вывод моего script.
Что я делаю неправильно, и как мне подавить этот вывод ошибки?
Ответы
Ответ 1
На всякий случай кто-то другой googles для похожих терминов, как я:
После того, как я несколько часов стучал мне на лоб, конечно, я нашел решение в течение нескольких минут после размещения здесь вопроса:
svn info $url 2>&1 | out-null
Это работает как шарм.
Ответ 2
Если вы хотите запретить использование только stderr:
svn info $url 2>$null
Ответ 3
Проголосовавший ответ порождает ошибку для меня. Решение оказалось следующим:
cmd /c "MyProgram MyArguments 2>&1" | Out-Null
Ответ 4
Также можно сделать это
svn info $url *> $null
PowerShell подавляет вывод консоли
about_Redirection