How to batch update multiple workitems in TFS
You can do this in Excel:
- Open the work items in Excel, via:
- right click a query in Team Explorer -> open in Excel
- multi-select some work items in a WIT result pane, then right click -> open in Excel
- load Excel, use Team -> Import to load a predefined query
- open a *.xls file that is already bound to TFS
- Make your bulk edits
- Click the Publish button on the Team ribbon
Full documentation:Managing work items in Excel (overview page; lots & lots of links inside)
You can bulk-edit in the web interface too
Windows command line:
REM make Martin Woodward fix all my bugstfpt query /format:id "TeamProject\public\My Work Items" | tfpt workitem /update @ /fields:"Assigned To=Martin"
Powershell:
# make Bill & Steve happy$tfs = tfserver -path . -all$items = $tfs.wit.Query(" SELECT id FROM workitems WHERE [Created By] IN ('bill gates', 'steve ballmer')") | % { $_.Open() $_.Fields["priority"].value = 1 $_ }# note: this will be much faster than tfpt since it's only one server call$tfs.wit.BatchSave($items)
$secpasswd = ConvertTo-SecureString $TfsPasswd -AsPlainText -Force$mycreds = New-Object System.Management.Automation.PSCredential ($TfsUserName, $secpasswd)Connect-TfsTeamProjectCollection -Server $TfsServerUrl -Collection $TfsCollection -Credential $mycreds#Get-TfsTeamProjectConnect-TfsTeamProject -Project $TfsProjectName$workItems = Get-TfsWorkItem -Filter "[System.WorkItemType] = 'Bug' AND [System.AssignedTo] = '$TfsUserName'"foreach ($workItem in $workItems){ $tpc = $workItem.Store.TeamProjectCollection $id = $workItem.Id $store = $tpc.GetService([type]'Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItemStore') $wi = $store.GetWorkItem($id) $projectName = $wi.Project.Name foreach($fldName in $Fields.Keys) { $wi.Fields[$fldName].Value = $Fields[$fldName] } $wi.Save()}
You can download detail script from how to batch update multiple work items in TFS by PowerShell