【问题标题】:How do I format the TFS work item AssignedTo field with PowerShell如何使用 PowerShell 格式化 TFS 工作项 AssignedTo 字段
【发布时间】:2013-09-21 13:13:46
【问题描述】:

我正在使用 TFS 2012 Power Tools 和 PowerShell 来显示包含更改集的工作项,这些更改集在过去 120 天内修改了给定目录下的源文件。在 StackOverflow 的大量帮助下,我找到了工作项并像这样显示它们:

PS> $items = Get-TfsItemHistory $/Somewhere -R -All -Version "D$((Get-Date).AddDays(-120).ToString('d'))~" | select ChangesetId -ExpandProperty WorkItems | Sort-Object -Unique Id
PS> $items | format-table

这看起来相当不错,例如,这是输出的开始:

Id    State    AssignedTo    AreaPath            Title
--    -----    ----------    --------            -----
32604 Closed   Harald Han... Client\Domain\Nav   Change to new address space

但是,如果我尝试仅显示字段的子集,则无法显示 AssignedTo 字段。没关系:

PS> $items | format-table AreaPath, State

AreaPath                  State
--------                  -----
KCS-Client\Domain\Nav     Closed

但这不是:

PS > $items | format-table AssignedTo, State

AssignedTo                State
----------                -----
                          Closed

我一定错过了一些琐碎的事情,但是(作为 PowerShell 和 TFS PowerTools 的相对新手)我不明白它是什么。有人可以帮忙吗?

【问题讨论】:

    标签: powershell tfs tfs-power-tools


    【解决方案1】:

    属性“AssignedTo”是在运行时从Microsoft.TeamFoundation.PowerTools.PowerShell.format.ps1xml powershell 自定义格式文件评估的scriptproperty

    值取自:

     $_.Fields[[Microsoft.TeamFoundation.WorkItemTracking.Client.CoreField]::AssignedTo].Value
    

    那么我认为(我无法测试它,因为我没有 TF Server 源)你需要这样做:

    $items | format-table @{n="AssignedTo";e={$_.Fields[[Microsoft.TeamFoundation.WorkItemTracking.Client.CoreField]::AssignedTo].Value}} , State
    

    【讨论】:

    • 刚试过,这很好用!但是我怎么会自己找到这个呢?有没有关于对象模型的好文档以及如何使用它的示例?
    • powershell 自定义格式文件的一个很好的起点是:msdn.microsoft.com/en-us/library/windows/desktop/… 关于对象模型,如果你的意思是 tfs 对象,我无能为力.. 但是你可以开始检查任何管道它的对象获取成员作为` $myobject |获取成员 -force 并查看任何成员类型和定义。希望对您有所帮助
    猜你喜欢
    • 2011-05-26
    • 2016-04-15
    • 2016-10-04
    • 1970-01-01
    • 2010-12-06
    • 2018-11-15
    • 2012-04-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多