Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PowerShell从TFS获取某些文件?_Tfs_Branch_Powershell 2.0 - Fatal编程技术网

如何使用PowerShell从TFS获取某些文件?

如何使用PowerShell从TFS获取某些文件?,tfs,branch,powershell-2.0,Tfs,Branch,Powershell 2.0,在我们发布分支后,需要更新某些配置文件。目前,我正在获取特定(新)分支上所有源代码的最新版本。这非常耗时,并且占用大量磁盘空间 是否有一种方法可以搜索/循环特定的分支并只获取符合特定条件的文件 例如: “get”部分使用TF的命令行界面很容易(tfget$/project/foo.proj)。我不知道如何在不首先获取最新版本的情况下循环遍历服务器对象 查看TFS PowerToys中的TFS PowerShell管理单元(需要自定义安装才能选择) 在32位PSH实例中加载管理单元后(在Micro

在我们发布分支后,需要更新某些配置文件。目前,我正在获取特定(新)分支上所有源代码的最新版本。这非常耗时,并且占用大量磁盘空间

是否有一种方法可以搜索/循环特定的分支并只获取符合特定条件的文件

例如:


“get”部分使用TF的命令行界面很容易(
tfget$/project/foo.proj
)。我不知道如何在不首先获取最新版本的情况下循环遍历服务器对象

查看TFS PowerToys中的TFS PowerShell管理单元(需要自定义安装才能选择)

在32位PSH实例中加载管理单元后(
在Microsoft.TeamFoundation.PowerShell中添加PSSnapin
),您可以使用:

  • 获取文件夹上的TFSItemProperty
    ,以获取受源代码管理的项目列表
  • Update TfsWorkspace
    获取或更新工作区中的所有或特定文件/文件夹

更新:在通过PowerToys为32位安装了PSH TFS管理单元后,您可以自己为64位安装PSH TFS管理单元(请参阅注释),在这种情况下,这不限于32位PSH实例。

从TFS PowerToys查看TFS PowerShell管理单元(您需要自定义安装才能选择)

在32位PSH实例中加载管理单元后(
在Microsoft.TeamFoundation.PowerShell中添加PSSnapin
),您可以使用:

  • 获取文件夹上的TFSItemProperty
    ,以获取受源代码管理的项目列表
  • Update TfsWorkspace
    获取或更新工作区中的所有或特定文件/文件夹

更新:您可以通过PowerToys为32位安装PSH TFS管理单元后,自己为64位安装PSH TFS管理单元(请参阅注释),在这种情况下,这并不限于32位PSH实例。

我最后使用了以下方法:

使用下载的tftp.exe自定义安装TFS Powershell管理单元

添加管理单元:

if ( (Get-PSSnapin -Name Microsoft.TeamFoundation.PowerShell -ErrorAction SilentlyContinue) -eq $null )
{
    Add-PSSnapin Microsoft.TeamFoundation.PowerShell
}
Powershell脚本:

param( [string] $ServerBranchLocation )

$tfs=Get-TfsServer -name http://mytfsserver:8080/tfs
$TfExePath = "${env:ProgramFiles(x86)}\Microsoft Visual Studio 10.0\Common7\IDE\TF.exe"

$matchFoo = "foofile.foo"

foreach ($item in Get-TfsChildItem $ServerBranchLocation -r -server $tfs) 
{ 
    if ($item -match $matchFoo)
    { & "$TFExePath" get $item.ServerItem /force /noprompt }
}

我找不到使用管理单元获取最新版本的方法,所以我不得不使用ol'trusty tf.exe

我最后用了这个:

使用下载的tftp.exe自定义安装TFS Powershell管理单元

添加管理单元:

if ( (Get-PSSnapin -Name Microsoft.TeamFoundation.PowerShell -ErrorAction SilentlyContinue) -eq $null )
{
    Add-PSSnapin Microsoft.TeamFoundation.PowerShell
}
Powershell脚本:

param( [string] $ServerBranchLocation )

$tfs=Get-TfsServer -name http://mytfsserver:8080/tfs
$TfExePath = "${env:ProgramFiles(x86)}\Microsoft Visual Studio 10.0\Common7\IDE\TF.exe"

$matchFoo = "foofile.foo"

foreach ($item in Get-TfsChildItem $ServerBranchLocation -r -server $tfs) 
{ 
    if ($item -match $matchFoo)
    { & "$TFExePath" get $item.ServerItem /force /noprompt }
}

我找不到使用管理单元获取最新版本的方法,所以我不得不使用ol'trusty tf.exe

我的印象是,在安装TFS PowerToys时默认安装TFS PowerShell管理单元。进行自定义安装给了我管理单元。此外,使用32位PSH也有效。它被加载到TFS特定的Powershell控制台中,但不是原始的Windows Powershell控制台。您当然可以更新您的配置文件(使用$profile找到)以加载TFS管理单元。我必须遵循其中的一个步骤才能使管理单元在我的64位控制台中工作。我还更新了我的配置文件以加载管理单元,这样我就不必在每个脚本中都这样做(而且它还可以移植给其他用户使用)。@Alicia Nice link,我认为最好允许管理单元自行安装(以防其他依赖项)。从高架64位PSH:< Windows >微软\NETFrase\Frave64 \ V2.0.50727 \ StudioU.EXE“C:\程序文件(x86)\微软Team Foundation Server 2010动力工具\微软.Team Foundation .PooToals.PixBase.Dll”<代码>谢谢@李察!我转移到一台新的Win8机器上,这帮了我很大的忙。我的印象是,在安装TFS PowerToys时默认安装了TFS PowerShell管理单元。进行自定义安装给了我管理单元。此外,使用32位PSH也有效。它被加载到TFS特定的Powershell控制台中,但不是原始的Windows Powershell控制台。您当然可以更新您的配置文件(使用$profile找到)以加载TFS管理单元。我必须遵循其中的一个步骤才能使管理单元在我的64位控制台中工作。我还更新了我的配置文件以加载管理单元,这样我就不必在每个脚本中都这样做(而且它还可以移植给其他用户使用)。@Alicia Nice link,我认为最好允许管理单元自行安装(以防其他依赖项)。从高架64位PSH:< Windows >微软\NETFrase\Frave64 \ V2.0.50727 \ StudioU.EXE“C:\程序文件(x86)\微软Team Foundation Server 2010动力工具\微软.Team Foundation .PooToals.PixBase.Dll”<代码>谢谢@李察!我转移到了一台新的Win8机器上,这帮了我很大的忙。要获得最新版本,请使用
Update TfsWorkspace
,而不列出版本(可能使用
-强制
始终获取服务器认为您在工作区中拥有的任何内容)。您可以通过
tf get
使用()和
-version
传递相同的版本规范。例如,
更新TfsWorkspaceèfile›-force-version'T'
以获取最新版本。x86与x64的对比如何?要获取最新版本,请使用
Update TfsWorkspace
,而不列出版本(可能使用
-Force
始终获取服务器认为您在工作区中拥有的任何内容)。您可以通过
tf get
使用()和
-version
传递相同的版本规范。例如,
更新TfsWorkspaceèfile›-force-version'T'
以获取最新版本。x86与x64的对比如何?