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*/)sumofA+=$2;if($0~/^B*/)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
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 ...

Originally posted by lxmxn at 2007-6-29 12:09 AM:
gawk -F= "{if($0~/^A*/)sumofA+=$2;if($0~/^B*/)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楼的技巧我也学到手了
就像以前那个计算字符串长度的问题
嘿嘿