如何在 .bat for-loop 中使用字符串变量? [关闭]

Posted

技术标签:

【中文标题】如何在 .bat for-loop 中使用字符串变量? [关闭]【英文标题】:How can I use a string variable in .bat for-loop? [closed] 【发布时间】:2022-01-20 19:39:55 【问题描述】:

在 .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 元变量... 不是你可以,但你有什么理由需要/想要? 您可以通过阅读FOR 命令的帮助文件来回答您自己的问题 【参考方案1】:

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

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

for 循环的语法如下:

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

【讨论】:

【参考方案2】:

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

@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(
 )

【讨论】:

i.imgur.com/F9HPj7q.jpg

以上是关于如何在 .bat for-loop 中使用字符串变量? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 javascript for-loop 和 if-statement 在右表中显示数据?

HTTP/2:stream.end 使用 For-Loop

BAT批处理,如何判断变量中,是不是包含了指定的字符串?

如何使用 For-loop 和 Tell 函数填充每行的起始位置列表?

如何使用 for-loop if 语句填充具有唯一随机数的数组?

如何设计神经网络的行为像For-Loop?