使用Powershell下载TFS文件

时间:2015-09-16 09:23:56

标签: powershell tfs

我有一个powershell脚本可以从TFS目录下载项目。

代码如下:

$TfsWorkspace = "$/Region/Application/Master/Payments"
$TfsUri = "http://tfs.company.net:8080/tfs/global"
$LocalDir = "C:\Deployment\"

Add-PSSnapin Microsoft.TeamFoundation.PowerShell

# Connect to TFS
$TFSServer = Get-TfsServer -Name $TfsUri

# Get all directories and files in the $TfsWorkspace directory
$items = Get-TfsChildItem $TfsWorkspace -Recurse -Server $TFSServer

$tfsCollection = New-Object -TypeName Microsoft.TeamFoundation.Client.TfsTeamProjectCollection -ArgumentList $TfsUri
$tfsVersionControl = $tfsCollection.GetService([Microsoft.TeamFoundation.VersionControl.Client.VersionControlServer])

# Download each item to a specific destination
foreach ($item in $items) 
{

    #If it finds a folder create the folder first
    if ($item.ItemType -eq "Folder") 
    {
        $newFolder = ($LocalDir + $([IO.Path]::GetFullPath($item.ServerItem.Remove(0,1)).Remove(0,3)))
        New-Item -ItemType directory -Path $($newFolder) -Force
    }
    else 
    {
        $newFile = $($LocalDir + $([IO.Path]::GetFullPath($item.ServerItem.Remove(0,1)).Remove(0,3)))
        $tfsVersionControl.DownloadFile($item.ServerItem, $newFile)
    }
}

当我运行此脚本时,它会在驱动器上创建文件夹,但是当它命中该部件以创建新文件时,我会收到以下错误消息:

Exception calling "DownloadFile" with "2" argument(s): "Invalid URI: Invalid port specified."
At C:\Users\UKAutoUser\Documents\TFS_Update2.ps1:40 char:9
+         $tfsVersionControl.DownloadFile($item.ServerItem, $newFile)
+         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : UriFormatException

我已经尝试通过文档挖掘该错误,但它似乎没有意义。由于它在找到项目时连接正常。

以下是传递给DownloadFile方法的字符串值的示例:

C:\Deployment\Region\Application\Master\Payments\Screens.cs
$/Region/Application/Master/Payments/Screens.cs

任何帮助将不胜感激。我似乎几乎就在那里,因为我可以得到一个迭代的文件列表。我只需要能够将它们下载到Deployment文件夹。

这样我以后可以使用Jenkins构建代码。

0 个答案:

没有答案