Board logo

标题: [求助]读取变量并求和【已解决】 [打印本页]

作者: textcd     时间: 2007-6-28 23:51    标题: [求助]读取变量并求和【已解决】

我有一个abc.txt文件,内容为:
A1=xxx
A2=xxx
........
An=456
B1=XXX
......
Bm=XXX
现在想做一个批处理:
1、求A1到An的和;
2、求B1到Bm的和。

该如何写,请高手指教。

[ Last edited by textcd on 2007-6-29 at 09:02 AM ]
作者: lxmxn     时间: 2007-6-29 00:09    标题: 用Gawk试试


gawk -F= "{if($0~/^A[0-9]*/)sumofA+=$2;if($0~/^B[0-9]*/)sumofB+=$2;}END{printf(\"A=%d\nB=%d\n\",sumofA,sumofB)}" abc.txt
#Gawk 下载
http://www.cn-dos.net/forum/viewthread.php?tid=31098&page=1#pid205571
作者: zh159     时间: 2007-6-29 00:24
批处理的,不能计算小数,最大数量自己设置
@echo off
setlocal EnableDelayedExpansion
for /f "delims=" %%i in (abc.txt) do set %%i
for /l %%n in (1,1,1000) do if not "!A%%n!" == "" set /a strA=!strA!+!A%%n!
for /l %%n in (1,1,1000) do if not "!B%%n!" == "" set /a strB=!strB!+!B%%n!
cd.>temp.txt
>>temp.txt echo A=%strA%
>>temp.txt echo B=%strB%
pause

作者: textcd     时间: 2007-6-29 06:50


  Quote:
Originally posted by zh159 at 2007-6-29 12:24 AM:
批处理的,不能计算小数,最大数量自己设置
@echo off
setlocal EnableDelayedExpansion
for /f "delims=" %%i in (abc.txt) do set %%i
for /l %%n in (1,1,1000) do i ... [/quote]
[quote]Originally posted by [i]lxmxn[/i] at 2007-6-29 12:09 AM:
[code]gawk -F= "{if($0~/^A[0-9]*/)sumofA+=$2;if($0~/^B[0-9]*/)sumofB+=$2;}END{printf(\"A=%d\nB=%d\n\",sumofA,sumofB)}" abc.txt
#Gawk 下载
http://www.cn-dos.net/foru ...

多谢两位。
作者: HAT     时间: 2007-6-29 14:06
3楼的技巧我也学到手了
就像以前那个计算字符串长度的问题
嘿嘿