108

I use WinXP, VS 2008 and Team Explorer to connect to Team Foundation Server.

I need to script (e.g. BAT file script) the following:

  • Get latest version of folder in Team Project.
  • Check out files of folder in Team Project.
  • Check in files of folder in Team Project.

My TFSProject is $/Arquitectura/Main/, mapped to the path C:\TFS\Arquitectura

Does anyone have any sample code or suggestions?

Zoe
  • 27,060
  • 21
  • 118
  • 148
Kiquenet
  • 14,494
  • 35
  • 148
  • 243

6 Answers6

166

Use tf.exe in the command line.

In the following examples, the %PathToIde% is usually on a path like this: %ProgramFiles%\Microsoft Visual Studio 9.0\Common7\IDE, or on Windows x64: %ProgramFiles(x86)%\Microsoft Visual Studio 10.0\Common7\IDE (depending on Visual Studio version and installation settings).

Example for get:

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

Example for checkout:

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

Example for checkin:

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

See for more information on the tf commandline.

Stefan Steinegger
  • 63,782
  • 15
  • 129
  • 193
Ewald Hofman
  • 12,688
  • 3
  • 39
  • 44
  • 5
    "%ProgramFiles(x86)%\Microsoft Visual Studio 10.0\Common7\IDE\TF.exe" get $/Project /recursive for VS 2010 on Win x64. Thanks for input, very useful! – Andreas Reiff Sep 19 '12 at 16:24
  • 1
    "%VS120COMNTOOLS%..\IDE\TF.exe" get $/PROJECT_NAME /recursive for VS2013 – igorushi Apr 27 '15 at 07:16
  • Sorry for digging up this old post, but i have a question: When working with different local TFS workspaces, where do i specify the workspace to use? Or is this implied by the current working directory? – Scrontch Sep 26 '16 at 08:19
13

Update for VS2017

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

Mark Monforti
  • 463
  • 4
  • 8
6

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

Jeff Bramlett
  • 69
  • 1
  • 1
4

get up to date code for Windows 7 64bit

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

This worked for me.

Shevliaskovic
  • 1,562
  • 4
  • 26
  • 43
krish
  • 41
  • 1
0

I tried the following piece of code in Powershell on Windows 10 64-bit and it worked for me:

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

Please note that the second line starts with an Ampersand (&), my code doesn't work without it, don't know the reason for it though.

Jaideep Dhumal
  • 903
  • 6
  • 6
  • 1
    [Found explanation for the & Call operator](https://ss64.com/ps/call.html). Surrounding a command with quotes will make PowerShell treat it as a string, so in addition to quotes, use the & call operator to force PowerShell to treat the string as a command to be executed. – ourmandave Dec 20 '21 at 12:29
0

Update for Visual Studio 2022

Create a Batch file for taking the latest version from TFS. Save this file with .bat extension

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

Note: cd /d is your project folder location drive

For Visual Studio 2019

Update with this line into batch file ,

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