【问题标题】:Scripting TFS Command Line for Get Latest Version, Check Out and Check in, programmatically以编程方式编写 TFS 命令行以获取最新版本、签出和签入
【发布时间】:2011-04-15 08:05:49
【问题描述】:

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

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

  • 在团队项目中获取最新版本的文件夹。
  • 签出团队项目中文件夹的文件。
  • 签入团队项目中文件夹的文件。

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

有人有任何示例代码或建议吗?

【问题讨论】:

    标签: tfs scripting checkin vcs-checkout getlatest


    【解决方案1】:

    在命令行中使用 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 commandline的更多信息,请参阅。

    【讨论】:

    • "%ProgramFiles(x86)%\Microsoft Visual Studio 10.0\Common7\IDE\TF.exe" 在 Win x64 上为 VS 2010 获取 $/Project /recursive。感谢您的意见,非常有用!
    • "%VS120COMNTOOLS%..\IDE\TF.exe" get $/PROJECT_NAME /recursive for VS2013
    • 抱歉挖掘了这篇旧帖子,但我有一个问题:使用不同的本地 TFS 工作区时,我在哪里指定要使用的工作区?还是当前工作目录暗示了这一点?
    【解决方案2】:

    VS2017 更新

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

    【讨论】:

    • 评论胜于回答。
    • 感谢专业的“C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\TF.exe”
    【解决方案3】:

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

    【讨论】:

    • @Neolisk 为什么建议在这种标准情况下使用/force
    【解决方案4】:

    获取 Windows 7 64 位的最新代码

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

    这对我有用。

    【讨论】:

      【解决方案5】:

      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
      

      【讨论】:

        【解决方案6】:

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

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

        请注意,第二行以与号 (&) 开头,没有它我的代码将无法工作,但不知道它的原因。

        【讨论】:

        • Found explanation for the & Call operator。用引号将命令括起来会使 PowerShell 将其视为字符串,因此除了引号之外,使用 & 调用运算符强制 PowerShell 将字符串视为要执行的命令。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-01-29
        • 2019-11-20
        • 2012-10-28
        • 2015-05-15
        • 2019-08-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多