我很抱歉问这个问题,我是初学者,但在网上搜索了3天后我仍然找不到解决方案。现在我有一个问题,如下所述。
我有两个批处理文件。第一个批处理文件如下:
打印.bat
SetLocal EnableDelayedExpansion
set LF=^& echo.
echo %1%
此批处理文件用于显示具有换行符的字符串(以显示多行)。该字符串只是第一个参数(%1)。
然后我有第二个批处理文件。只需接受两个参数,然后设置名为 frac 的变量。主要目标是创建一个带有换行符的字符串。
压裂.bat
set "frac= %1 !LF!-----!LF! %2 "
然后,我打开cmd窗口并输入
frac 2 3
我使用 echo 命令来检查它
echo %frac%
显示如下:
2 !LF!-----!LF! 3
这就是我想要的。但是当我使用它作为参数传递给第一个批处理文件时
print %frac%
但它只是显示
2
为什么不显示如下
2
-----
3
如何更正代码以使其正确显示?
print.bat 的主要用途是接受一个变量,该变量存储了带有 !LF! 的字符串。 (这等于我在 print.bat 中定义的换行符)。所以 print.bat 的每个 %1 参数都应该包含“!LF!”,现在我想做的是扩展 !LF!到“^&回声”。 ,让它可以在cmd屏幕上显示多行。 frac.bat 是生成带有“!LF!”字符串的批处理文件。并存储到一个变量中,然后将其传递给 print.bat 并显示它。当然,我还有其他批处理文件还没有完成,但它们都有相同的目的。 那么重点是如何修正 print.bat 中的代码,如何让它正确显示多行?
如果我正确理解你想要实现的目标,这就是我考虑这样做的方式:
示例.cmd
@Echo Off
SetLocal EnableExtensions DisableDelayedExpansion
Set ^"divider=^
-----^
^"
SetLocal EnableDelayedExpansion
Echo 2 !divider! 3
EndLocal
Pause
EndLocal
Exit /B