如何在第一个批处理文件中设置一个变量存储字符串并使用第二个批处理文件正确显示该变量?

问题描述 投票:0回答:1

我很抱歉问这个问题,我是初学者,但在网上搜索了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 中的代码,如何让它正确显示多行?

batch-file
1个回答
0
投票

如果我正确理解你想要实现的目标,这就是我考虑这样做的方式:

示例.cmd

@Echo Off
SetLocal EnableExtensions DisableDelayedExpansion

Set ^"divider=^

-----^

^"

SetLocal EnableDelayedExpansion
Echo   2  !divider!  3
EndLocal

Pause
EndLocal
Exit /B
© www.soinside.com 2019 - 2024. All rights reserved.