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

仅从Powershell中的TF.exe返回标签属性,powershell,tfs,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* | Sel

我正在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

而且输出是相同的。

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

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))
  }
}

TF.exe不是powershell cmdlet,因此它不会返回对象数组。而是返回一个字符串数组。您需要解析字符串。是的,在任何人指出它之前,我意识到从技术上讲,字符串数组是字符串对象的数组。:)