使用PowerShell将文件从tfs versioncontrol复制到目录

时间:2014-05-19 13:46:57

标签: powershell tfs tfs2013 tfs-power-tools

有人知道是否可以将文件从TFS(2013 Update 2)源代码管理复制到计算机上的特定文件夹中?

假设我有服务器路径$/BuildTemplate2013/BuildProcessSource,我希望使用PowerShell将该目录的所有文件复制/下载到C:\destinationDir。那可能吗?我安装了TFS 2013 Update 2 Power工具,但我找不到任何命令...

3 个答案:

答案 0 :(得分:9)

我创建了一个PowerShell脚本,该脚本使用TFS程序集连接到TFS服务器。然后我遍历服务器上的文件(在特定路径中)并递归下载。

# The deploy directory for all the msi, zip etc.
$AutoDeployDir = "Your TFS Directory Server Path"
$deployDirectory = $($Env:TF_BUILD_DROPLOCATION + "\Deploy\" + $Env:TF_BUILD_BUILDNUMBER)

# Add TFS 2013 dlls so we can download some files
Add-Type -AssemblyName 'Microsoft.TeamFoundation.Client, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
Add-Type -AssemblyName 'Microsoft.TeamFoundation.VersionControl.Client, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
$tfsCollectionUrl = 'http://YourServer:8080/tfs/YourCollection' 
$tfsCollection = New-Object -TypeName Microsoft.TeamFoundation.Client.TfsTeamProjectCollection -ArgumentList $tfsCollectionUrl
$tfsVersionControl = $tfsCollection.GetService([Microsoft.TeamFoundation.VersionControl.Client.VersionControlServer])

# Register PowerShell commands
Add-PSSnapin Microsoft.TeamFoundation.PowerShell

# Get all directories and files in the AutoDeploy directory
$items = Get-TfsChildItem $AutoDeployDir -Recurse

# Download each item to a specific destination
foreach ($item in $items) {
    # Serverpath of the item
    Write-Host "TFS item to download:" $($item.ServerItem) -ForegroundColor Blue

    $destinationPath = $item.ServerItem.Replace($AutoDeployDir, $deployDirectory)
    Write-Host "Download to" $([IO.Path]::GetFullPath($destinationPath)) -ForegroundColor Blue

    if ($item.ItemType -eq "Folder") {
        New-Item $([IO.Path]::GetFullPath($destinationPath)) -ItemType Directory -Force
    }
    else {
        # Download the file (not folder) to destination directory
        $tfsVersionControl.DownloadFile($item.ServerItem, $([IO.Path]::GetFullPath($destinationPath)))
    }
}

答案 1 :(得分:3)

默认情况下,在安装TFS Power Tools时,未选择PowerShell选项。

选择安装TFS powershell工具的选项。

enter image description here

然后,您可以使用Update-TfsWorkspace命令行开关获取最新文件。请确保您已为要获取最新文件的目录创建了工作区。然后执行以下

cd <Your Directory Path>

Update-TfsWorkspace

执行命令let时,请确保为要执行powershell的用户创建工作区。

只需在

上执行即可

答案 2 :(得分:0)

您要查找的命令是tf.exe get,它附带TFS客户端工具,即Visual Studio或Team Explorer独立工具。您需要配置工作空间和工作文件夹映射才能使用tf.exe get

如果您更喜欢使用TF Power Tools,请使用Update-TfsWorkspace命令获取文件。我相信你仍然需要一个用工作折叠映射定义的工作空间。

Update-TfsWorkspace -Item $/TeamProject/Path/Path2/Item -Recurse