【问题标题】:Loop through Changesets after Get-TfsItemHistory - Powershell在 Get-TfsItemHistory 之后循环更改集 - Powershell
【发布时间】:2012-04-16 08:54:58
【问题描述】:

下面的 powershell 代码返回一个变更集列表。我想遍历每个变更集,以便我可以访问属性。

$items = Get-TfsItemHistory $tfsProject -Version "D$lastChangeDateTime~" -Recurse -Server $tfs -IncludeItems

例如

foreach($item in $items)

{

    Write-Host $item.ServerItem
}

我相信 ServerItem 属性保存了服务器上更改文件的路径。我还想访问其他属性。 对此的任何帮助将不胜感激。 这样做的目的是部署每个变更集中关联的文件。我会将它们复制到服务器上,并且需要访问通知、cmets 和其他内容的其他属性。

【问题讨论】:

    标签: deployment powershell tfs powershell-2.0


    【解决方案1】:

    在 foreach 中尝试

    $Item | get-member 
    

    或者干脆

    $items[0] | get-member # if is an array
    

    检索对象中可用的属性和方法列表。

    【讨论】:

    • 嗨克里斯蒂安,感谢您的回复。 get-member 返回一个列表,显示不同的方法/属性和成员类型的解释。它没有给出该项目的任何值。
    • 当然!对象 $item 的属性和/或方法列表。了解属性后,您可以在脚本中使用它。
    • 好的,谢谢克里斯蒂安,我明白你现在的情况了。我还有另一个问题,如果你没问题。如果我要将 $items 数组写入控制台,我会看到一个 Serveritem 属性。我认为我无法使用 Get-Member 公开的任何属性访问该属性。当我执行 $item.Changes 时,我确实再次看到了这个属性。我怎样才能访问这个?我会做类似 $item.Changes.Serveritem 的事情吗?
    • 我很抱歉,但我帮不上忙... 从未使用过 Get-TfsItemHistory。使用 get-member 您可以在右列中看到 il 属性具有 get 和/或 set 方法。如果只有 get 是只读属性,您可以更改此值。
    • 我发现 ChangeType 属性位于 ChangeSet.Changes 对象上,Serveritem 和 itemtype 位于 ChangeSet.Changes.Item 属性上。这是也可以下载文件的级别。感谢您向我展示 get-member 对象。它帮助我解决了这个问题......
    【解决方案2】:

    试试看:Get Latest Version of Folder from TFS, using Powershell

    获取您正在查找的特定文件夹的最新版本,而不是 TFS 的整个根目录。

    【讨论】:

      猜你喜欢
      • 2016-05-22
      • 2011-05-30
      • 2016-05-22
      • 1970-01-01
      • 1970-01-01
      • 2022-07-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-27
      相关资源
      最近更新 更多