如何在.bat for循环中使用字符串变量



在.bat文件中,可以在for循环中使用char类型的变量。下面的代码,例如

@echo off
for /l %%p in (15,2,20) do (
echo %%p
)

给出";15 17 19〃;,正如预期的那样。但如果我使用字符串类型的变量,它就不起作用了

@echo off
for /l %%parameter in (15,2,20) do (
echo %%parameter
)

我想知道是否有可能使第二段代码正常工作。有人能帮我吗?非常感谢。

您可以使用用for metavariable定义的普通环境变量来代替for metavariable:

@Echo off
Set "Loop[1]=%%#"
Set "Loop[2]=%%@"
For /l %Loop[1]% in (1 1 5) Do For /l %Loop[2]% in (5 1 9) Do (
<nul set /p=%Loop[1]% + %Loop[2]%=
Cmd /c Set /A %Loop[1]% + %Loop[2]%
Echo(
)

%value%的使用用于定义包含多个字符的变量。%%用于定义由单个字符组成的变量。

由于for循环中只允许使用%%,因此%value%不能用于定义具有多个字符的变量。在这种情况下,唯一的选择是使用%%定义一个单字符变量;如CCD_ 7。

for循环的语法如下所示:

for %%a in (list) do command [ parameters ]

最新更新