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



我正在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

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

相关内容

  • 没有找到相关文章

最新更新