中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-07-06 14:25
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]读取变量并求和【已解决】 查看 940 回复 4
楼 主 [求助]读取变量并求和【已解决】 发表于 2007-06-28 23:51 ·  中国 河北 保定 联通
初级用户
积分 52
发帖 21
注册 2007-01-19 06:49
19年会员
UID 76993
性别 男
状态 离线
我有一个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 ]
2 用Gawk试试 发表于 2007-06-29 00:09 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
19年会员
UID 59080
状态 离线
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
3 发表于 2007-06-29 00:24 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
批处理的,不能计算小数,最大数量自己设置
@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
4 发表于 2007-06-29 06:50 ·  中国 河北 保定 联通
初级用户
积分 52
发帖 21
注册 2007-01-19 06:49
19年会员
UID 76993
性别 男
状态 离线
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 ...

多谢两位。
5 发表于 2007-06-29 14:06 ·  中国 上海 联通
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
3楼的技巧我也学到手了
就像以前那个计算字符串长度的问题
嘿嘿
论坛跳转: