仅从Powershell中的TF.exe返回Label属性

时间:2016-07-12 17:38:09

标签: powershell tfs

我在Powershell中运行此命令

.\TF.exe labels /owner:* BLD_NUM_1*

这会产生类似于

的结果
Label     Owner     Date
-------------------------
Label1    MyOwner   2016-07-08
Label2    MyOwner   2016-07-11

我想只返回Label属性,所以我试过这个

.\TF.exe labels /owner:* BLD_NUM_1* | Select-Object -Property Label

然而,这只是输出

Label
-----

没有数据。

我也试过

.\TF.exe labels /owner:* BLD_NUM_1* | select Label

并且输出相同。

1 个答案:

答案 0 :(得分:3)

使用输出字符串数据的可执行文件可能很麻烦,尤其是当它们的数据周围有标签和其他格式时。在这种情况下,由于您需要跳过前几行,因此最简单的方法是使用FOR循环迭代数组并从每个字符串中解析出数据。下面的函数将获取TF.exe的结果,并为您提供"标签"的正确内容。线。请注意,只有在任何标签中没有空格时才会起作用,如果您需要另外一种方法来解析字符串。

Function Get-TFResults {
  $TFresult = .\TF.exe labels /owner:* BLD_NUM_1*
  for($i=2; $i -le $TFresult.Count - 1; $i++){
    $TFresult[$i].substring(0,($TFresult[$i].indexof(" ") - 1))
  }
}