Command line BAT文件(WINDOWS)中的FOR循环出错
在bat文件中有一个for循环,该循环取数字1到100,并对每个整数使用mod运算符。循环结束后,我很难计算平均值?有人能帮我解决这个问题吗?我试过这些说法: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!
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