【问题标题】:Batch File Store Line Variables And Sum Them Up批处理文件存储行变量并将它们求和
【发布时间】:2013-08-09 07:12:42
【问题描述】:

我的输入文件 Count.txt 包含以下内容:

] /Count 1
] /Count 2

我正在尝试在每行末尾添加数字字符并将其存储到另一个文件或将其存储到另一个变量。 我无法使用以下批处理文件脚本来做到这一点:

setlocal enabledelayedexpansion
set count=0
for /f "tokens=3 delims= " %%i in ('findstr Count Count.txt') do (
set /a count=%%i + %count%
echo !count! > finalcount.txt
) 
endlocal

我得到的输出是 2。

请帮忙。

【问题讨论】:

    标签: windows for-loop batch-file cmd


    【解决方案1】:

    试试这个:

    @echo off &setlocal enabledelayedexpansion
    set count=0
    
    (for /f "tokens=3" %%i in ('findstr "Count" Count.txt') do (
    set /a count+=%%i
    echo !count! 
    ))> finalcount.txt
    

    【讨论】:

    • 感谢 Endoro。这是有效的。但是,我不明白为什么 finalcount.txt 包含 1 然后是正确数字的另一行 3
    • 您可以从脚本中删除> finalcount.txt 以查看发生了什么。 for 循环针对finalcount.txt 中的每一行运行。如果您只需要最后一个结果,只需将> finalcount.txt 移动到echo 之前:> finalcount.txt echo !count!
    • (code)>filenamecode 中写入包含ECHOed 的任何内容的新文件。 echo !count! 显示 count 的运行时值,因为它发生了变化。在原始文件中,count 的值被设置为(从文件中读取)+(在 PARSE-TIME 的计数值);然后在每个循环中将更改的值写入文件的新版本。将set 更改为set /a count=%%i + !count!set /a count+=%%i 都将实现所需的结果。 count 将包含循环结束时的总和,因此在最终 ) 之后的 echo !count! > finalcount.txtecho %count% > finalcount.txt 有效。
    猜你喜欢
    • 1970-01-01
    • 2012-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-11
    • 1970-01-01
    • 2015-03-23
    • 2022-10-21
    相关资源
    最近更新 更多