Loops 批次-用于回路1-100,每个回路5模
类的批处理…无法解决此问题。目前有Loops 批次-用于回路1-100,每个回路5模,loops,batch-file,for-loop,modulus,Loops,Batch File,For Loop,Modulus,类的批处理…无法解决此问题。目前有 :forLoop echo. for /L %%x in (1, 1, 100) do ( SET /A result=%%x %% 2 echo %%x ) 有什么想法吗,伙计们 编辑:我尝试使用for循环从1迭代到100。然后在for循环中获得1,2,3,4的模,等等,所以在我的例子中是模x。其中x不断递增。试试这个: SETLOCAL ENABLEDELAYEDEXPANSION :forLoop echo. for /L %%x
:forLoop
echo.
for /L %%x in (1, 1, 100) do (
SET /A result=%%x %% 2
echo %%x
)
有什么想法吗,伙计们
编辑:我尝试使用for循环从1迭代到100。然后在for循环中获得1,2,3,4的模,等等,所以在我的例子中是模x。其中x不断递增。试试这个:
SETLOCAL ENABLEDELAYEDEXPANSION
:forLoop
echo.
for /L %%x in (1, 1, 100) do (
SET /A result=%%x %% 2
echo !result!
)
第一个命令是在执行时展开变量所必需的
变量的延迟扩展(在运行时)通过执行代码>符号
如果使用%
,则会得到解析时间值
编辑:
考虑到Stephan的建议,我认为我们可以使用call
来获得更短的解决方案:
for /L %%x in (1, 1, 100) do (
set /A result="%%x %% 2"
call echo %%result%%
)
不知道是什么?您的问题陈述不清楚,因此我们不知道您遇到了什么问题,也不知道您无法解决什么问题。抱歉。我尝试使用for循环从1迭代到100。然后在for循环中获得1,2,3,4的模,等等,所以在我的例子中是模x。其中x是不断递增的。好的,这是有效的。非常感谢。没有SETLOCAL ENABLEDELAYEDEXPANSION和一个简单的for循环,我能做到吗?@Rib我想你做不到。块语句被括号包围,在这个块中,任何%variable%
都将在解析时被它的值替换,这是在执行块之前。您需要不断变化的运行时值,然后需要以的形式访问其值!变数代码>,为此必须使用setlocalenabledelayedexpansion
命令,该命令允许解析器识别代码>。顺便说一句,如果这个答案对你有帮助的话,你可以接受。@JosEdu:不太正确。您可以在(1,1100)do call:doit%%x中使用,然后在“子例程”中使用:doit
-设置/a结果=%1%%2
-echo%result%
-转到:eof
。这样,就不需要延迟扩展。但我不知道,这是否符合“只有一个简单的for循环”,这在调用中起作用。我刚刚意识到我需要得到模量的平均值。我会使用call set/A temp=%%results%%+temp吗?@Rib我认为最好了解延迟扩展,当您尝试做更复杂的事情时,它会更有用。