中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-12 06:08
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求助:FOR命令计算 查看 1,131 回复 4
楼 主 求助:FOR命令计算 发表于 2010-09-28 11:07 ·  中国 安徽 黄山 电信
中级用户
★★
积分 493
发帖 228
注册 2007-02-16 00:38
19年会员
UID 79596
性别 男
来自 安徽
状态 离线
1.txt
商户1 15600
商户2 15600
商户3 15600
商户4 15600
商户5 15601
商户6 15601
商户7 15601
商户8 15601
商户9 15601

2.txt
商户2 20
商户2 30
商户4 10

商户5 15
商户7 40
商户7 50
商户9 60


1.txt & 2.txt ---->3.txt
文件1.txt和2.txt 生成3.txt
3.txt
15600 60
15601 165

PS:
60=20+30+10
165=15+40+50+60

[ Last edited by xycoordinate on 2010-9-30 at 16:48 ]
2 发表于 2010-09-30 16:41 ·  中国 安徽 马鞍山 电信
中级用户
★★
积分 493
发帖 228
注册 2007-02-16 00:38
19年会员
UID 79596
性别 男
来自 安徽
状态 离线
自己顶!!!

@echo off
setlocal enabledelayedexpansion

for /f "tokens=1,2" %%a in (1.txt) do (
set str1=%%a
set str2=%%b

for /f "tokens=1,2" %%i in (2.txt) do (
set sh=%%i
set je=%%j
if !sh!==!str1! @echo !str2! !je!
)

)


结果:
15600 20
15600 30
15600 10

15601 15
15601 40
15601 50
15601 60

我想得到合计数!怎么办???

[ Last edited by xycoordinate on 2010-10-3 at 23:41 ]
3 发表于 2010-10-03 23:42 ·  中国 安徽 马鞍山 电信
中级用户
★★
积分 493
发帖 228
注册 2007-02-16 00:38
19年会员
UID 79596
性别 男
来自 安徽
状态 离线
主要是中间有个标志变化 15600 15601后面还有15602……

也就是每组小计一下

最好得到:

15600 20
15600 30
15600 10
15600-小计 60


15601 15
15601 40
15601 50
15601 60
15601-小计 165

合计 225

[ Last edited by xycoordinate on 2010-10-3 at 23:56 ]
4 难判断什么时候每项小计算完,只好最后显示小计 发表于 2010-10-04 14:51 ·  中国 江苏 苏州 电信
新手上路
积分 13
发帖 15
注册 2010-09-18 21:51
15年会员
UID 174432
性别 男
状态 离线
@echo off
setlocal enabledelayedexpansion

set num15600=0
set num15601=0

for /f "tokens=1,2" %%a in (1.txt) do (
set str1=%%a
set str2=%%b

for /f "tokens=1,2" %%i in (2.txt) do (
set sh=%%i
set je=%%j
if !sh!==!str1! (set /a num!str2!=num!str2!+!je!)
if !sh!==!str1! @echo !str2! !je!
)
)

echo 15600-小计 !num15600!
echo 15601-小计 !num15601!
5 发表于 2010-10-05 00:06 ·  中国 安徽 马鞍山 电信
中级用户
★★
积分 493
发帖 228
注册 2007-02-16 00:38
19年会员
UID 79596
性别 男
来自 安徽
状态 离线
谢谢!

我后面还有其他机构15602 15604 15605 ……15610 15611 15612……
前面都有定义

num156??=0

???

[ Last edited by xycoordinate on 2010-10-5 at 10:03 ]
论坛跳转: