我正在Beyond Compare上实现一个工具。我有这段代码,可以读取文件的内容并存储在变量中
for /f "usebackq tokens=* delims=" %%h in ('type C:useruserfilestitle.txt') do (
set title=%%h
)
标题内容示例.txt
AAA BBB CCCC
现在我想在此代码中传递 %title% 的值
%varA% %varB% c:useroutput1%%a c:useroutput2%%b "c:userreport.html" %title% /silent
要强调:
c:useroutput1%%a -> %1
c:useroutput2%%b -> %2
"c:userreport.html" -> %3
%title% -> %4
现在,此文件.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:useroutput1%%a c:useroutput2%%b "c:userreport.html" %title% /silent
它只读取第一个空格之前的第一个单词,即"AAA"
我已经尝试用双引号("%title%")括起来,但我得到"系统找不到指定的文件"。
由于您似乎正在使用参数调用过程(但尚未向我们显示调用),因此我们被迫做出假设。
我的猜测是:
在call
行中:....."%标题%"
在此过程中,使用 %~4
代替 %4
。
但是,如果不知道可能正在使用的任何实用程序的语法是什么,就无法保证。