For loop 如何使用For/L循环列表中的变量(批处理文件编程)

For loop 如何使用For/L循环列表中的变量(批处理文件编程),for-loop,batch-file,For Loop,Batch File,我想在for循环列表中放置一个变量值。myvariable是从用户输入中获取的 例如: for /L %%G IN (1 1 %myvariable%) DO command 如果我使用这种语法,循环永远不会执行。是否可以在运行时在列表中分配给for循环 请帮帮我。你的想法是对的,但你的语法是错的。应该是: for /l %%G in (1, 1, %myvariable%) do command 你的想法是对的,但你的语法是错的。应该是: for /l %%G in (1, 1, %myv

我想在for循环列表中放置一个变量值。myvariable是从用户输入中获取的

例如:

for /L %%G IN (1 1 %myvariable%) DO command
如果我使用这种语法,循环永远不会执行。是否可以在运行时在列表中分配给for循环


请帮帮我。

你的想法是对的,但你的语法是错的。应该是:

for /l %%G in (1, 1, %myvariable%) do command

你的想法是对的,但你的语法是错的。应该是:

for /l %%G in (1, 1, %myvariable%) do command

马克已经识别出在和之间缺少一个空格,但无法分辨这是您的实际代码还是您创建问题时的一个拼写错误

另一种可能性是,您的变量是在同一代码中设置的,该代码稍后会扩展该值。以下代码将失败:

(
  set /p "myvariable=Enter a value: "
  echo myvariable=%myvariable%
)
上述操作失败的原因是,解析语句时会发生%扩展,括号内的整个块被视为单个语句。因此,它扩展到执行SET/P之前存在的值

如果需要运行时存在的值,则需要使用延迟扩展

setlocal enableDelayedExpansion
(
  set /p "myvariable=Enter a value: "
  echo myvariable=!myvariable!
)

这种类型的问题经常出现在IF和FOR命令中。我无法判断这是否是您的问题,因为您没有提供足够的上下文。

Mark已确定和之间缺少空格,但无法判断这是您的实际代码还是您创建问题时的拼写错误

另一种可能性是,您的变量是在同一代码中设置的,该代码稍后会扩展该值。以下代码将失败:

(
  set /p "myvariable=Enter a value: "
  echo myvariable=%myvariable%
)
上述操作失败的原因是,解析语句时会发生%扩展,括号内的整个块被视为单个语句。因此,它扩展到执行SET/P之前存在的值

如果需要运行时存在的值,则需要使用延迟扩展

setlocal enableDelayedExpansion
(
  set /p "myvariable=Enter a value: "
  echo myvariable=!myvariable!
)

这种类型的问题经常出现在IF和FOR命令中。我不知道这是否是您的问题,因为您没有提供足够的上下文。

谢谢。。我用逗号尝试了这种语法,但没有成功。请帮帮我。@user1634371-不需要逗号,但需要IN和之间的空格。谢谢。。我用逗号尝试了这种语法,但没有成功。请帮助我。@user1634371-不需要逗号,但需要IN和之间的空格。了解命令中%myvariable%的无效值也很有用。由于CMD首先将其展开,如果其值会破坏for命令的语法,则可能会导致各种问题。了解命令中%myvariable%的哪些值不起作用也很有用。由于CMD首先将其展开,如果其值会破坏for命令的语法,则可能会导致各种问题。