-1

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

第一个 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
4

2 回答 2

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
于 2013-10-15T22:58:52.180 回答
0

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

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

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

set path=%path%;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE
于 2013-10-16T08:48:18.120 回答