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