Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops 批次-用于回路1-100,每个回路5模_Loops_Batch File_For Loop_Modulus - Fatal编程技术网

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我认为最好了解延迟扩展,当您尝试做更复杂的事情时,它会更有用。