Copy Entire Files From TFS To Local Using PowerShell

C
  1. cls  
  2.   
  3. Write-Host "Enter source location "  
  4. $sourceLocation = Read-Host  
  5.   
  6. $tfsCollectionUrl = New-Object System.URI($sourceLocation);  
  7.   
  8. Write-Host "Enter server path "  
  9. $serverPath = Read-Host  
  10.   
  11. Write-Host "Enter local path to download"  
  12. $localPath = Read-Host  
  13.   
  14. [Microsoft.TeamFoundation.Client.TfsTeamProjectCollection] $tfsCollection = Get-TfsServer $tfsCollectionUrl  
  15.   
  16. $VersionControl = $tfsCollection.GetService([Microsoft.TeamFoundation.VersionControl.Client.VersionControlServer])  
  17. $latest = [Microsoft.TeamFoundation.VersionControl.Client.VersionSpec]::Latest  
  18. $recursionType = [Microsoft.TeamFoundation.VersionControl.Client.RecursionType]::Full     
  19.   
  20.     try  
  21.     {  
  22.   
  23.         foreach ($item in $VersionControl.GetItems($serverPath$latest,$recursionType).Items)  
  24.         {  
  25.             $target =   [io.path]::Combine($localPath,$item.ServerItem.Substring(2))  
  26.             $exists=[System.IO.Directory]::Exists($target)  
  27.   
  28.             if($item.ItemType -eq "Folder" -and !$exists)  
  29.             {  
  30.                 New-Item $target -Type Directory  
  31.             }  
  32.             if($item.ItemType -eq "File")  
  33.             {  
  34.                 $item.DownloadFile($target)  
  35.             }  
  36.         }  
  37.         Write-Host "`n Successfully downloaded all the files to the target folder: " $localPath -ForegroundColor Green  
  38.     }  
  39.     catch  
  40.     {  
  41.         $ErrorMessage = $_.Exception.Message  
  42.         $FailedItem = $_.Exception.ItemName  
  43.         Break  
  44.     }