批量循环 - 可变问题

时间:2014-10-14 01:26:37

标签: variables batch-file for-loop modulus

我必须在bash和batch中做一些事情。我坚持批处理循环部分。部分工作的说明如下:

::Doing a for loop from 1 to 100,
:: - Find the results of calculating each number from 1 to 100 mod 5.
:: - Append each number to the results.txt file
:: - After the for loop ends calculate and display the average of the results
:: - Append the average of the numbers to the results.txt file
::Code
:forLoop
echo.
::set /A temp-0
for /L %%x in (1, 1, 100) do (
    set /A result="%%x %% 5"
    call echo %%result%% >> results.txt 
    ::%%temp+=%%result%%
)
::average=temp/100
::append average
GOTO exit

其他用户帮我提供了结果变量和mod 5.但是,我目前遇到了temp的问题。我想一旦我开始工作,我应该能够让平均部分工作没有太多问题。我的教授还提到批量中有3种不同类型的for循环,所以我甚至不确定我是否使用了正确的循环。任何人都可以帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

echo.
set /A temp=0
for /L %%x in (1, 1, 100) do (
    set /A result="%%x %% 5"
    call echo %%result%%  
    CALL SET /a temp+=%%result%%
)
SET /a average=temp/100
ECHO %average% %temp%

这很直截了当。 不要在一个块(带括号的系列语句)中使用::注释样式,因为它实际上是一个破坏循环的破坏标签。

除此之外,您需要call set,因为您没有使用delayedexpansion - 因此要求将%的习惯数量翻倍 - 与call echo相同{1}}。

我已取出重定向,以便结果只显示在屏幕上。