我想在for循环IN列表中放置一个变量值。 myvariable是从用户输入中获得的。
示例:
for /L %%G IN (1 1 %myvariable%) DO command
如果我使用这种语法,则永远不会执行循环。是否可以在运行时将IN列表分配给for循环?
请帮帮我。
答案 0 :(得分:3)
你的想法是对的,但你的语法错了。它应该是:
for /l %%G in (1, 1, %myvariable%) do command
答案 1 :(得分:2)
马克已经确定了IN和()之间缺少的空格,但是无法判断这是您的实际代码还是创建问题时的错字。
另一种可能性是您的变量在同一代码中设置,以后扩展该值。以下代码将失败:
(
set /p "myvariable=Enter a value: "
echo myvariable=%myvariable%
)
上述失败的原因是在解析语句时发生%扩展,并且括号内的整个块被视为单个语句。因此它扩展到执行SET / P之前存在的值。
如果您想要运行时存在的值,则需要使用延迟扩展
setlocal enableDelayedExpansion
(
set /p "myvariable=Enter a value: "
echo myvariable=!myvariable!
)
IF和FOR命令经常发生此类问题。我无法判断这是否是您的问题,因为您没有提供足够的背景信息。