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

Windows 如何使用批处理脚本在参数中传递变量值,windows,batch-file,cmd,beyondcompare,beyondcompare3,Windows,Batch File,Cmd,Beyondcompare,Beyondcompare3,我正在实现一个超越比较的工具。 我有一段代码,它读取文件的内容并存储在变量中 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:\u

我正在实现一个超越比较的工具。 我有一段代码,它读取文件的内容并存储在变量中

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

,因为您似乎正在使用参数调用一个过程(但尚未向我们显示调用),我们被迫做出假设

我的猜测是:

调用
行中:。。。。。%title%

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


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

它还输出%4作为值。这有什么不对?正如我所说的,我们被迫做出假设,因为你没有向我们展示实际的代码。我只是总结了代码,但这是代码中唯一需要的部分,你不应该总结代码;你应该提供一个可复制的例子,这样我们就可以在自己的机器上解决你的问题。你提供的东西不能单独使用。