【问题标题】:Error with FOR LOOP in BAT FILE (WINDOWS)BAT 文件中的 FOR LOOP 错误(WINDOWS)
【发布时间】:2013-03-22 16:03:12
【问题描述】:

这是一个 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

【问题讨论】:

  • 循环在哪里结束?结尾括号不存在。而且您的公式看起来很奇怪,因为总数始终为 0

标签: command-line batch-file cmd command-line-arguments


【解决方案1】:

试试

SET /A TOTAL=!VAR! / 100

!var!返回var 的运行时间值。 %var% 返回 PARSE-TIME 值(即在语句执行之前)

(当然,前提是你已经执行了一个

SETLOCAL ENABLEDELAYEDEXPANSION

说明)

【讨论】:

  • 这里不需要延迟扩展。 Set /a total=var / 100 也有效
  • 我不确定它是否正常工作,它只是返回一堆零。这是我用来将结果附加到文本文件的代码。 SETLOCAL ENABLEDELAYEDEXPANSION 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 echo mod 操作为:!VAR!>> results.txt echo.>> results.txt
  • 嗯,它正在做你告诉它做的事情。电脑就是这样。关键是您将数字 (1..100 mod 5) 依次分配给 var - 这将重复 1,2,3,4,0。然后您将TOTAL 计算为var / 100 - 这将是呃,(得到计算器......)嗯 - 零!您可能应该做的是将var 的值累积到total 中,然后在循环完成后除以100。
猜你喜欢
  • 2017-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-27
相关资源
最近更新 更多