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

Как подавить вывод 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.

Что я делаю неправильно, и как мне подавить этот вывод ошибки?

4b9b3361

Ответ 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