gpt4 book ai didi

powershell - 如何使用 PowerShell 访问 "Custom"或非系统 TFS 工作项字段?

转载 作者:行者123 更新时间:2023-12-04 00:54:22 25 4
gpt4 key购买 nike

当使用 PowerShell 从 TFS 中提取信息时,我发现我可以获取标准字段,但不能获取“自定义”字段。我不确定自定义是正确的术语,但是例如,如果我查看 VS2008 中的流程编辑器并编辑工作项类型,则有如下所列的字段,包括名称、类型和引用名称:

Title         String    System.Title
State String System.State
Rev Integer System.Rev
Changed By String System.ChangedBy

我可以使用 Get-TfsItemHistory 访问这些:

Get-TfsItemHistory "$/path" -Version "D01/12/10~" -R 
| Select -exp WorkItems | Format-Table Title, State, Rev, ChangedBy -Auto

到目前为止一切顺利。

但是,WorkItem 类型中还有一些其他字段,我称之为“自定义”或非系统字段,例如:

Activated By  String    Microsoft.VSTS.Common.ActivatedBy
Resolved By String Microsoft.VSTS.Common.ResolvedBy

下面的命令不检索数据,只检索空格。

Get-TfsItemHistory "$/path" -Version "D01/12/10~" -R 
| Select -exp WorkItems | Format-Table ActivatedBy, ResolvedBy -Auto

我也试过用引号引起来的名字,完全限定的引用名,但没有成功。您如何访问这些“非系统”字段?

谢谢

博兹

更新:

从 Keith 的回答中我可以得到我需要的字段:

Get-TfsItemHistory "$/Hermes/Main" -Version "D01/12/10~" -Recurse `
| Select ChangeSetId, Comment -exp WorkItems `
| Select ChangeSetId, Comment, @{n='WI-Id'; e={$_.Id}}, Title -exp Fields `
| Where {$_.ReferenceName -eq 'Microsoft.VSTS.Common.ResolvedBy'} `
| Format-Table ChangesetId, Comment, WI-Id, Title, @{n='Resolved By'; e={$_.Value}} -Auto

注意事项:将 WorkItem 的 Id 重命名为 WI-Id 是必要的,因为 Id 与 Field Id 不明确。重命名字段值属性会提供列标题名称而不是“值”。

最佳答案

每个工作项中都有一个 Fields 集合属性,似乎包含所有工作项字段和值。像这样访问它:

Get-TfsItemHistory . -r -vers "D12/14/2010~" | 
Where {$_.WorkItems.count -gt 0} | Select -Expand workitems |
Select @{n='WIT-Id';e={$_.Id}},Title -Expand Fields |
Where {$_.ReferenceName -eq 'Microsoft.VSTS.Common.ActivatedBy'} |
Format-Table Value,WIT-Id,Title -auto

关于powershell - 如何使用 PowerShell 访问 "Custom"或非系统 TFS 工作项字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4463800/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com