中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 求助:FOR命令计算 上一主题 | 下一主题
xycoordinate
中级用户




积分 493
发帖 228
注册 2007-2-16
来自 安徽
状态 离线
『楼 主』:  求助:FOR命令计算

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 ]

2010-9-28 11:07
查看资料  发送邮件  发短消息 网志  OICQ (226308607)  编辑帖子  回复  引用回复
xycoordinate
中级用户




积分 493
发帖 228
注册 2007-2-16
来自 安徽
状态 离线
『第 2 楼』:  

自己顶!!!

@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 ]

2010-9-30 16:41
查看资料  发送邮件  发短消息 网志  OICQ (226308607)  编辑帖子  回复  引用回复
xycoordinate
中级用户




积分 493
发帖 228
注册 2007-2-16
来自 安徽
状态 离线
『第 3 楼』:  

主要是中间有个标志变化 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 ]

2010-10-3 23:42
查看资料  发送邮件  发短消息 网志  OICQ (226308607)  编辑帖子  回复  引用回复
zhoupeng243
新手上路





积分 13
发帖 15
注册 2010-9-18
状态 离线
『第 4 楼』:  难判断什么时候每项小计算完,只好最后显示小计

@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!

2010-10-4 14:51
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
xycoordinate
中级用户




积分 493
发帖 228
注册 2007-2-16
来自 安徽
状态 离线
『第 5 楼』:  

谢谢!

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

num156??=0

???

[ Last edited by xycoordinate on 2010-10-5 at 10:03 ]

2010-10-5 00:06
查看资料  发送邮件  发短消息 网志  OICQ (226308607)  编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: