如何在tf.exe中为itemspec参数使用命令批处理变量?

时间:2013-10-15 22:37:42

标签: batch-file command-line tfs

我正在使用命令行tf.exe编写批处理文件以执行多个不同的操作。我想为_branchTopFolder参数设置局部变量itemspec,而不必多次重复路径。这是我的批处理命令。

第一个tf命令无法理解我传入的是有效路径。该命令使用字面上的_branchTopFolder而不是变量的值。如果我用实际路径替换_branchTopFolder,那么脚本运行正常。

看起来tf可执行文件本身正在解析参数,而不是让命令行控制台解析并传递值。是否有一个转义字符可供tf.exe识别传入变量进行解析?

@Echo off 
PATH = "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE"

:: Clean up Branches
SET _branchTopFolder=C:\Projects\Company\Site\20130722

:: Report checked out files
tf status _branchTopFolder /user:* /recursive
PAUSE

:: GET top folder
tf get _branchTopFolder
PAUSE 

:: DELETE folder path 
tf delete _branchTopFolder
PAUSE

2 个答案:

答案 0 :(得分:1)

要让命令行提示符返回变量的VALUE,该变量应该包含在%%中。

PATH = "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE"

:: Clean up Branches
SET _branchTopFolder=C:\Projects\Company\Site\20130722

:: Report checked out files
tf status %_branchTopFolder% /user:* /recursive
PAUSE

答案 1 :(得分:0)

从不将PATH变量用于单个文件夹。您可以在路径中添加一个文件夹,但是如果从PATH变量中删除所有系统路径,那么它将会破坏。

话虽如此,您已使用path = text并在批处理语法中包含空格,因此您创建了一个名为%path %的变量,其行为与系统变量%path%不一样

使用此语法将路径中的文件夹添加到前导分号:

set path=%path%;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE