如何使用批处理脚本在参数中传递变量值

时间:2014-12-12 22:44:33

标签: windows batch-file cmd beyondcompare beyondcompare3

我正在Beyond Compare上实现一个工具。 我有这个代码,它读取文件的内容并存储在变量

for /f "usebackq tokens=* delims=" %%h in ('type C:\user\userfiles\title.txt') do (
set title=%%h
)

title.txt的示例内容

AAA BBB CCCC

现在我想在此代码

中传递%title%的值
%varA% %varB% c:\user\output1\%%a c:\user\output2\%%b "c:\user\report.html" %title% /silent

要精心制作:

c:\user\output1\%%a    -> %1
c:\user\output2\%%b    -> %2
"c:\user\report.html"  -> %3
%title%                -> %4

现在,这个files.txt会将上面的参数作为脚本参数的一部分来调用。

file-report layout:side-by-side options:display-all,line-numbers title:%4 output-to:%3 output-options:html-color %1  %2 

现在的问题是,当我为%title%执行回显时,它会显示" AAA BBB CCC"但是在这行代码上,

%varA% %varB% c:\user\output1\%%a c:\user\output2\%%b "c:\user\report.html" %title% /silent

它只读取第一个空格之前的第一个单词,即" AAA"

我已经尝试用双引号括起来了("%title%")但是我得到 "系统找不到指定的文件。"

1 个答案:

答案 0 :(得分:0)

由于您似乎在调用带有参数的程序(但未向我们展示通话),我们不得不做出假设。

我的猜测是:

call行:....."%title%"

在此过程中,使用%~4代替%4

但是,如果不知道使用什么效用的语法是什么,那就不能保证。