Visual studio 使用TFS命令行tf.exe如何将回购复制到我选择的文件夹位置? 我已经用TFVC来查看我的MSV 2015 C++项目。我习惯于像git/svn这样的命令行repo,在那里我可以简单地执行签出/克隆等操作。。。并将文件复制到我喜欢的任何文件夹

Visual studio 使用TFS命令行tf.exe如何将回购复制到我选择的文件夹位置? 我已经用TFVC来查看我的MSV 2015 C++项目。我习惯于像git/svn这样的命令行repo,在那里我可以简单地执行签出/克隆等操作。。。并将文件复制到我喜欢的任何文件夹,visual-studio,tfs,tfvc,Visual Studio,Tfs,Tfvc,因此,我已通过MSVS2015 GUI将我的工作区签出到映射位置(c:\myworkspace)。但是现在我想运行我的自动测试脚本,它将把最新的文件从repo复制到当前目录(例如c:\autorun)。自动测试脚本构建、测试并生成结果等。。。但是我不想让它把我的工作区写得太多,以防其他人添加了更改 我希望它转到我选择的其他文件夹 在Git中,我只需导航到文件夹(cd c:\autorun),然后执行Git克隆。但我看不出TFVC的工作区是如何做到这一点的 到目前为止,我已经开始修改与git一起工

因此,我已通过MSVS2015 GUI将我的工作区签出到映射位置(c:\myworkspace)。但是现在我想运行我的自动测试脚本,它将把最新的文件从repo复制到当前目录(例如c:\autorun)。自动测试脚本构建、测试并生成结果等。。。但是我不想让它把我的工作区写得太多,以防其他人添加了更改

我希望它转到我选择的其他文件夹

在Git中,我只需导航到文件夹(cd c:\autorun),然后执行
Git克隆
。但我看不出TFVC的工作区是如何做到这一点的

到目前为止,我已经开始修改与git一起工作的脚本,以实现以下目标:

' Clean any existing files:
rmdir /S /Q <projname>

' Checkout project
tf checkout <projname> /recursive

' Do other stuff (build test etc...)
'清除任何现有文件:
rmdir/S/Q
'签出项目
tf校验/递归
'做其他事情(构建测试等…)
但这只适用于我的c:\workspace,我不想删除/覆盖我的本地更改。

您可以使用

cd temp
md newfolder
tf vc workspace /new ...
tf vc workfold /map $/Project/Folder c:\temp\newfolder
cd newfolder
tf vc get . /recursive
tf workspace /delete
或者你可以使用Neno Loje编写的小实用程序

从OP更新

假设我从要将项目解压缩到的文件夹开始。我使用了以下方法:

tf dir显示了我拥有的回购协议:

D:\sandbox\tfs-test > tf dir
$/:
$tfsRepo1 
$tfsRepo2
$tfsRepo3 
我只想要前两份回购协议:

tf vc workspace /new /noprompt cit
tf vc get tfsRepo1 /recursive
tf vc get tfsRepo2 /recursive
然后整理:

tf workspace /delete cit /noprompt
rmdir /S /Q tfsRepo1 
rmdir /S /Q tfsRepo2

注意在不同的地方使用/noprompt,这样就不需要用户交互了。

这太棒了做得好:)我不得不稍微修改一下你的脚本,让它在没有出现提示的情况下工作-我将在你的帖子中添加一个编辑。你能解释一下“.”在你得到什么吗这只是指向当前文件夹吗?这是为了确保您正在将文件下载到当前工作区中刚创建的工作区中。