Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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 批处理文件中for循环的问题_Loops_Batch File_For Loop - Fatal编程技术网

Loops 批处理文件中for循环的问题

Loops 批处理文件中for循环的问题,loops,batch-file,for-loop,Loops,Batch File,For Loop,我试图批量创建一个for循环,使用1-100的模数进行一些计算,然后返回整个数字集的平均值。我想在屏幕上打印这个平均值,并将其输出到一个名为output的文件中,这就是我所拥有的,但它似乎无法正常工作。有什么建议吗?谢谢你 @echo off setlocal EnabledDelayedExpansion for /l %%i in (1,1,100) do ( set /a EXPR = %%i %% 5 set /a EXPR2 = %EXPR+3 set /a T

我试图批量创建一个for循环,使用1-100的模数进行一些计算,然后返回整个数字集的平均值。我想在屏幕上打印这个平均值,并将其输出到一个名为output的文件中,这就是我所拥有的,但它似乎无法正常工作。有什么建议吗?谢谢你

@echo off
setlocal EnabledDelayedExpansion
for /l %%i in (1,1,100) do (
    set /a EXPR = %%i %% 5
    set /a EXPR2 = %EXPR+3
    set /a TOTAL = TOTAL+%EXPR2
) 
set /a AVG = %TOTAL/100
echo Your average is %AVG
echo Your average is %AVG >> output.txt
这是你想要的吗


在EnableDelayedExpansion中增加一个
d
(顺便说一句,
set/a
也可以在没有延迟扩展的情况下工作)。经典错误是让空格包围变量赋值。在批处理脚本中,结果是空格成为变量名的一部分。除了标记和命令行参数外,变量的两边都用
%

括起来。你能编辑你的问题并用一个小例子解释一下你想如何逐步计算这个平均值吗步骤?请参阅
setlocal/?
获取/?
以了解代码无法工作的原因。除此之外,你的变量都错了。它是
%Var%
而不是
%Var
。不能读取
%AVG
这样的变量,必须在
回送中读取
%AVG%
;例如,在
set/A
中,不要声明
%
符号,而是使用
set/A EXPR2=EXP+3
;它被称为
EnableDelayedExpansion
(而不是
Enable
**
d
**),尽管这里不需要延迟扩展;最后,您可以编写
set/A TOTAL+=EXPR2
而不是
set/A TOTAL=TOTAL+EXPR2
(意思是一样的)…谢谢大家,我是批处理新手,所以语法让我有些不适应。对于
set/A
=/code>周围的空格不重要(与您描述的标准-
set
,即它们成为变量名和/或值的一部分相反)…非常感谢。这帮助我更好地理解了它。问题解决了。
@echo off
setlocal EnableDelayedExpansion
for /l %%i in (1,1,100) do (
    set /a EXPR=%%i %% 5
    set /a EXPR2=EXPR+3
    set /a TOTAL=TOTAL+EXPR2
) 
set /a AVG=TOTAL/100
echo Your average is %AVG%
echo Your average is %AVG%