我正在使用命令行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
答案 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