使用命令行删除TFS工作空间的所有本地文件夹映射

时间:2013-07-17 11:38:52

标签: tfs tfs2010

我可以使用tf.exe轻松地映射/取消映射工作目录,但如果存在到另一个文件夹或工作空间根目录的映射,这仍然会干扰我在脚本中映射特定目录。

有没有办法从工作区中删除所有工作目录映射,所以我知道我有一个“干净的名单”可供使用?

1 个答案:

答案 0 :(得分:0)

TF.exe不支持隐式删除所有文件夹映射。但是,您可以使用PowerShell实现这一目标:

Add-Type -AssemblyName "Microsoft.TeamFoundation.Client, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a",
                       "Microsoft.TeamFoundation.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a",
                       "Microsoft.TeamFoundation.VersionControl.Client, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"


$tfs = [Microsoft.TeamFoundation.Client.TfsTeamProjectCollectionFactory]::GetTeamProjectCollection("http://tfsserver:8080/tfs/DefaultCollection")
$tfs.EnsureAuthenticated()
$vcs = $tfs.GetService([Microsoft.TeamFoundation.VersionControl.Client.VersionControlServer])
$workspace = $vcs.GetWorkspace("workspace_name", "owner")

foreach($folder in $workspace.Folders)           
{   
       Write-Output "Removing $folder"
       $workspace.DeleteMapping($folder)
}