Windows批处理中缺少操作数错误

时间:2015-10-25 21:56:51

标签: batch-file for-loop

FOR /L %%i in (1,1,100) DO (
SET /A modder=%%i %% 3
SET /A result=%modder%+5
SET /A total=%total%+%result%
)
SET /A final=%total%/100
ECHO The average of (1 to 100 mod 3) +5 is: %total% >> results.txt

我是Windows Batch脚本的新手,但是我已经被困在这里并且无法解决任何问题。我需要经历这个for循环并使用mod 3计算从1到100的每个数字,然后向它添加5。 (1到100 mod 3)+ 5.之后,我需要将最终结果附加到results.txt文件中。

无论我做什么或改变什么,程序都会立即崩溃,或者我会得到一个" Missing Operand"消息100次。我不能告诉我哪里犯了错误以及如何解决它。如果有人能提供帮助,我会非常感激。谢谢!

1 个答案:

答案 0 :(得分:3)

您需要delayed expansion或者您只需删除循环中的% - es(仅适用于set /a):

@echo off
FOR /L %%i in (1,1,100) DO (
 SET /A modder=%%i %% 3
 SET /A result=modder+5
 SET /A total=total+result
)
SET /A final=%total%/100
ECHO The average of (1 to 100 mod 3) +5 is: %total%