-1

我正在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%”)括起来,但我得到“系统找不到指定的文件”。

4

1 回答 1

0

由于您似乎正在使用您的参数调用一个过程(但没有向我们展示调用),我们被迫做出假设。

我的猜测是:

在行中call:.....“%title%”

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

但是,如果不知道可能使用的任何实用程序的语法是什么,则无法保证。

于 2014-12-12T23:37:27.033 回答