使用脚本编写TFS命令行以获取最新版本、签出和签入,以编程方式实现。

108

我使用WinXP、VS 2008和Team Explorer连接到Team Foundation Server。

我需要编写脚本(例如BAT文件脚本)执行以下操作:

  • 获取 Team Project 中的文件夹的最新版本。
  • 检出 Team Project 中文件夹中的文件。
  • 检入 Team Project 中文件夹中的文件。

我的TFS项目是 $/Arquitectura/Main/,映射到路径 C:\TFS\Arquitectura

有没有人有示例代码或建议?

6个回答

166

在命令行中使用tf.exe。

在下面的示例中,%PathToIde% 通常位于此路径: %ProgramFiles%\Microsoft Visual Studio 9.0\Common7\IDE,或者在 Windows x64 上: %ProgramFiles(x86)%\Microsoft Visual Studio 10.0\Common7\IDE(取决于 Visual Studio 版本和安装设置)。

示例获取命令:

cd C:\TFS\Arquitectura
"%PathToIde%\TF.exe" get $/Arquitectura/Main /recursive
检出示例:
cd C:\TFS\Arquitectura
"%PathToIde%\TF.exe" checkout $/Arquitectura/Main /recursive

检查示例:

cd C:\TFS\Arquitectura
"%PathToIde%\TF.exe" checkin $/Arquitectura/Main /recursive

了解更多有关tf命令行的信息,请参见。


5
"%ProgramFiles(x86)%\Microsoft Visual Studio 10.0\Common7\IDE\TF.exe" get $/Project /recursive 是在Win x64上为VS 2010执行的命令。感谢您的输入,非常有用! - Andreas Reiff
1
"%VS120COMNTOOLS%..\IDE\TF.exe" get $/PROJECT_NAME /recursive 能在VS2013中使用 - igorushi
抱歉挖出这篇旧帖,但我有一个问题:当使用不同的本地TFS工作区时,我在哪里指定要使用的工作区?或者这是由当前工作目录隐含的? - Scrontch

13

关于VS2017的更新

C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\tf.exe'


8
评论胜于答案。 - Kiquenet
感谢您使用专业版的"C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\TF.exe"。 - Rupesh Kumar Tiwari

6

"C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\tf.exe" get "$/ProjectName/Main" /force /recursive

可以用于在计算机上检索指定的代码库。

6
@Neolisk为什么在这种标准情况下建议使用/force - MEMark

4

获取最新的 Windows 7 64 位操作系统的代码。

"%ProgramFiles(x86)%\Microsoft Visual Studio 10.0\Common7\IDE\TF.exe" get /recursive

这对我起了作用。


0

我在Windows 10 64位上的Powershell中尝试了以下代码,它对我起作用:

cd C:\MyWorkspace
& "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\TF.exe" get $/TFSFolderPath /recursive

请注意,第二行以一个&符号开头,如果没有它,我的代码将不起作用,尽管我不知道原因。


1
找到了关于 & Call 运算符的解释(https://ss64.com/ps/call.html)。用引号将命令括起来会使 PowerShell 将其视为字符串,因此除了引号外,还要使用 & call 运算符来强制 PowerShell 将字符串视为要执行的命令。 - ourmandave

0

Visual Studio 2022 更新

创建一个批处理文件从 TFS 中获取最新版本。 将此文件保存为 .bat 扩展名。

TakeLatest.bat

@echo off
title Project Builder
echo Taking Latest of All Projects which are listed here

cd /d %~dp0

call "C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\TF.exe" get /recursive

pause

注意: cd /d 是您的项目文件夹所在驱动器。

对于 Visual Studio 2019

将以下行更新到批处理文件中,

call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\TF.exe" get /recursive

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接