在PS腳本自動化,我有以下一些功能SVN任務:如何在Powershell中抑制stderr輸出?
function SvnUrlExists($url)
{
svn info $url | out-null 2>&1
return $?
}
因爲這明確地測試一些SVN倉庫URL是否存在,我都不感興趣。任何錯誤輸出。然而,儘管一切,我發現了大約在PowerShell中重定向stderr
暗示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
不幸的是,這嚴重打亂了我的腳本的輸出。
我在做什麼錯,我該如何抑制這個錯誤輸出?
另外,如果你有一個較大的命令,你可以在'$把它包裝()| out-null「來獲得相同的效果。例如:'$(svn info $ url 2>&')|出null'。當命令很長時,我會這樣做,或者我需要在腳本中將它分成幾行。 – Nick 2012-08-15 15:53:48
@尼克:啊,謝謝。但是,它不一定是'$(svn info $ url)2>&1 |出null'? (注意'2>&1'的位置。) – sbi 2012-08-16 09:34:11
哦,哇,我完全誤讀了你的文章。是的,它應該是'$(svn info $ url)|出null'。這取決於你想要在'2>&1'上進行錯誤檢查的位置。我不能說沒有測試它,但我認爲它不應該在'''裏面或外面。您可能實際上可以將'2>&1'完全關閉,就像我說的,沒有測試我無法確定。 – Nick 2012-08-16 14:41:02