我有一个TFS 2013 Update 2构建服务器。当我构建一个项目时,我会检查一些文件,更改一些内容并再次检查。这非常有效。 唯一的问题是,当有人签出其中一个文件时,构建服务器会将其视为错误,构建将部分成功。实际上它只是一条信息消息,但构建将其视为错误。我该如何压制这些消息?
我有以下Powershell命令:
Add-TfsPendingChange -Edit -Item $PathToFolderToCheckout -Recurse
该命令来自TFS 2013 Power Tools。
我尝试了以下但不起作用:
-ErrorAction
和Igonore
SilentlyContinue
-Out-Null
为每个文件抛出的消息是: 文件路径:已在工作区中打开进行编辑; Ralph Jansen
由于
答案 0 :(得分:1)
经过一番努力,我成功地为我们的Tfs构建了! \ O /
您必须使用*>&1 | out-null
例如:
Add-TfsPendingChange -Edit -Item $PathToFolderToCheckout -Recurse *>&1 | out-null
副作用是导致错误的所有消息都将丢失。
答案 1 :(得分: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
答案 2 :(得分:0)
我认为它需要在标准输出流中发送到null。试试这个:
$Null = Add-TfsPendingChange -Edit -Item $PathToFolderToCheckout -Recurse *>&1
*>& 1将所有输出重定向到标准输出,$ null是用于此目的的保留变量。它比管道输出更有效率。
另一种选择可能是设置错误的操作首选项。我之前看到cmdlet似乎没有确认-ErrorAction通用参数。
$ErrorActionPreference = 'SilentlyContinue'
Add-TfsPendingChange -Edit -Item $PathToFolderToCheckout -Recurse
$ErrorActionPreference = 'Continue'
答案 3 :(得分:0)
试试这个:
Add-TfsPendingChange -Edit -Item $PathToFolderToCheckout -Recurse 2>&1 >$null
2>&1
参数会将stderr
重定向到stdout
,>$null
参数会将stdout
重定向为空,这样就不会显示任何内容。
或者,如果您只想隐藏发送到stderr
的数据,只需重定向:
Add-TfsPendingChange -Edit -Item $PathToFolderToCheckout -Recurse 2>$null