Command line BAT文件(WINDOWS)中的FOR循环出错

Command line BAT文件(WINDOWS)中的FOR循环出错,command-line,batch-file,cmd,command-line-arguments,Command Line,Batch File,Cmd,Command Line Arguments,在bat文件中有一个for循环,该循环取数字1到100,并对每个整数使用mod运算符。循环结束后,我很难计算平均值?有人能帮我解决这个问题吗?我试过这些说法: echo VAR / 100 echo !VAR! / 100 SET /A TOTAL=%VAR% / 100 没用 以下是我的当前代码: for /L %%i in (1, 1, 100) do ( SET /A VAR=%%i %% 5 SET /A TOTAL=%VAR% / 100 echo !VAR!

在bat文件中有一个for循环,该循环取数字1到100,并对每个整数使用mod运算符。循环结束后,我很难计算平均值?有人能帮我解决这个问题吗?我试过这些说法:

echo VAR / 100

echo !VAR! / 100

SET /A TOTAL=%VAR% / 100
没用

以下是我的当前代码:

for /L %%i in (1, 1, 100) do (

 SET /A VAR=%%i %% 5 

 SET /A TOTAL=%VAR% / 100

 echo !VAR! 

 echo !TOTAL!

 echo. >> results.txt
试一试

!!瓦尔!返回
var
的运行时值var%返回解析时间值(即在执行语句之前)

(当然,前提是您已经执行了

SETLOCAL ENABLEDELAYEDEXPANSION

指令)

循环在哪里结束?结尾的括号不在那里。你的公式看起来很奇怪,因为总数总是0,你不需要延迟展开
Set/a total=var/100
工作正常,我不确定它是否工作正常,它只是返回一堆零。以下是im用于将结果附加到文本文件的代码。SETLOCAL ENABLEDELAYEDEXPANSION for/L%%i in(1,1100)do(SET/A VAR=%%i%%5 SET/A TOTAL=!VAR!/100 echo!VAR!echo!TOTAL!echo.>>results.txt echo.mod操作是:!VAR!>>results.txt echo.>>results.txt好吧,它正是按照你告诉它的那样做的。计算机就是这样。关键是你在分配数字(1..100 mod 5)依次转到
var
-这将重复1,2,3,4,0。然后将
TOTAL
计算为
var
/100-这将是呃,(获取计算器…)嗯-零!您可能应该做的是将
var
的值累加为
TOTAL
,然后在循环完成后除以100。
SETLOCAL ENABLEDELAYEDEXPANSION