我有一个Excel工作表,其中包含数百个TFS 2013工作项ID,用于填充A列和B列。为了便于说明,我们只说我有以下内容:
A列的第1行到第100行:填充了100个错误工作项的工作项ID
第1行 - B列的第100行填充了100个工作项的工作项ID。
我想做的是拥有一个自动化流程,例如一个脚本,它迭代我的Excel电子表格的一百行,并将列A中的工作项ID与同一行中列B中的相应工作项ID链接,例如,将A1中列出的工作项链接到B1,A2到B2,A3到B3等工作项。
我可以看到For循环达到这样的要求。
答案 0 :(得分:1)
如果您将电子表格保存为.csv文件,并且有两列标题为Parent and Child,那么请使用此优秀博客文章作为灵感:
http://www.colinsalmcorner.com/post/bulk-migrate-work-item-comments-links-and-attachments
试试这个:
$tpcUrl = "http://myserver:8080/tfs/MyCollection"
$csvFile = ".\map.csv" #format: Parent, Child
[Reflection.Assembly]::LoadWithPartialName('Microsoft.TeamFoundation.Common')
[Reflection.Assembly]::LoadWithPartialName('Microsoft.TeamFoundation.Client')
[Reflection.Assembly]::LoadWithPartialName('Microsoft.TeamFoundation.WorkItemTracking.Client')
$tpc = [Microsoft.TeamFoundation.Client.TfsTeamProjectCollectionFactory]::GetTeamProjectCollection($tpcUrl)
$wis = $tpc.GetService([Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItemStore])
$list = Import-Csv $csvFile
foreach($map in $list)
{
$childWIT = $wis.GetWorkItem($map.Child)
Write-Host "Creating Link from Parent:$($map.Parent) to Child:$($map.Child)" -ForegroundColor Green
$hierarchyLink = $wis.WorkItemLinkTypes[[Microsoft.TeamFoundation.WorkItemTracking.Client.CoreLinkTypeReferenceNames]::Hierarchy]
$link = new-object Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItemLink($hierarchyLink.ReverseEnd, $map.Parent)
$childWIT.WorkItemLinks.Add($link)
try
{
$childWIT.Save();
Write-Host "Link created" -ForegroundColor DarkGreen
}
catch
{
Write-Error "Could not save work item $map.Child"
Write-Error $_
}
}
Write-Host
Write-Host "Linking complete"