【问题标题】:Batch File Counter in a for loopfor循环中的批处理文件计数器
【发布时间】:2015-08-05 12:49:04
【问题描述】:

我有一个 for 循环,我试图计算每个循环,但是这个循环回显为零。如何让它增加?

@echo off
setlocal enableextensions

set /a count = 0

for /f "Delims=" %%a in (content\docs.html) do (
    set /a count+=1
    echo %count%
)

【问题讨论】:

  • 看看这篇文章:stackoverflow.com/questions/7522740/…。问题是 %count% 在执行之前被评估,所以它总是为零,请参阅另一篇文章以获取解决方案。
  • here 是一个简短但令人印象深刻的演示。

标签: batch-file scripting dos


【解决方案1】:
@echo off
setlocal enabledelayedexpansion

set /a count = 0

for /f "Delims=" %%a in (content\docs.html) do (
    set /a count+=1
    echo !count!
)

注意! 而不是%。这就是使用setlocal enabledelayedexpansion 的结果。

【讨论】:

  • 应该是setlocal enableextensions ENABLEDELAYEDEXPANSION
  • 如果我使用'setlocal enabledelayedexpansion' Joe。
  • 虽然Command Extensions据称是默认启用的,但没有人可以推测并相信这些已启用有效...
  • 那我们为什么不直接迁移到 powershell 呢?
猜你喜欢
  • 2023-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-07
  • 2023-03-27
  • 2011-10-07
  • 2013-08-08
  • 1970-01-01
相关资源
最近更新 更多