2014-10-01 391 views
4

我有一個TFS 2013 Update 2 buildserver。當我建立一個項目時,我檢出一些文件,修改一些內容並再次檢查。這很好。 唯一的問題是,當有人檢出其中一個文件時,buildserver會將其視爲錯誤,並且構建會部分成功。實際上,這只是一條信息消息,但構建將其視爲錯誤。我怎樣才能禁止這些消息?抑制PowerShell輸出消息

我有以下PowerShell命令:

Add-TfsPendingChange -Edit -Item $PathToFolderToCheckout -Recurse 

的命令是從TFS 2013電動工具。

我嘗試以下,但它不工作:

  • 添加-ErrorActionIgonoreSilentlyContinue
  • 添加-Out-Null
  • 嘗試和空的catch

消息時引發對於每個文件是: 指向文件的路徑 :在工作區打開編輯;拉爾夫·詹森

感謝

回答

0

嘗試其中之一:

Add-TfsPendingChange -Edit -Item $PathToFolderToCheckout -Recurse -ErrorAction SilentlyContinue -wa 0 | Out-null 

[void](Add-TfsPendingChange -Edit -Item $PathToFolderToCheckout -Recurse -ErrorAction SilentlyContinue -wa 0) 

您也可以將您的cmdlet的結果到一個變量(並且什麼也不做):

$throwaway = Add-TfsPendingChange -Edit -Item $PathToFolderToCheckout -Recurse -ErrorAction SilentlyContinue -wa 0 
+0

您好,我嘗試了所有3,但都沒有奏效... – 2014-10-01 11:33:42

+0

什麼是虛假的輸出是什麼樣子?如果是,你可以添加一個警告'-Wa 0'切換到上面的命令之一,然後再試一次 – Raf 2014-10-01 11:37:43

+0

輸出僅僅是我在上面的問題賽義德的消息......我想這是出現在相同的消息Visual Studio中的輸出窗口,如果你籤的是已簽出由別人...只是信息/警告消息的文件... – 2014-10-01 11:44:26

0

我相信它需要在標準輸出流中發送到null。試試這個:

$Null = Add-TfsPendingChange -Edit -Item $PathToFolderToCheckout -Recurse *>&1 

*> & 1重定向所有輸出到標準輸出和$ null是用於此目的的保留變量。它比管道更加高效。

另一種替代方法是設置錯誤的動作首選項。我以前見過cmdlet似乎不認可-ErrorAction公共參數。

$ErrorActionPreference = 'SilentlyContinue' 
Add-TfsPendingChange -Edit -Item $PathToFolderToCheckout -Recurse 
$ErrorActionPreference = 'Continue' 
+0

謝謝你的回答,但不工作... :( – 2014-10-02 08:59:50

+0

你可以發佈你在說什麼的截圖嗎?這將是有益的。 – 2014-10-02 13:29:27

0

試試這個:

Add-TfsPendingChange -Edit -Item $PathToFolderToCheckout -Recurse 2>&1 >$null 

2>&1參數重定向到stderrstdout>$null參數重定向stdout爲null,所以不會顯示任何內容。

或者,如果你只想隱藏數據被髮送到stderr,只是重定向:

Add-TfsPendingChange -Edit -Item $PathToFolderToCheckout -Recurse 2>$null 
+0

謝謝的答覆,但不起作用。嘗試都... – 2014-10-02 06:22:03

+0

我不使用TFS,所以我不能直接測試你的命令。你能告訴我們發生了什麼事的截圖? – aphoria 2014-10-02 12:58:19

1

經過一番努力,我成功地得到它爲我們的TFS構建! \ O/

你必須結束命令行與*>&1 | out-null

對於爲例:

Add-TfsPendingChange -Edit -Item $PathToFolderToCheckout -Recurse *>&1 | out-null 

的副作用是,所有導致錯誤的信息將會丟失。