中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 文本合并计算2(问题已经基本解决,还有疑惑?)
作者:
标题: 文本合并计算2(问题已经基本解决,还有疑惑?) 上一主题 | 下一主题
xycoordinate
中级用户




积分 493
发帖 228
注册 2007-2-16
来自 安徽
状态 离线
『楼 主』:  文本合并计算2(问题已经基本解决,还有疑惑?) 使用 LLM 解释/回答一下

text1.txt

15600_20080525_01.p106_prt
15600_15601 6 贷 -4341.00
15600_15602 2 借 20245.00
15600_15604 8 贷 -30310.00
15600_15605 1 贷 -3000.00
15600_15606 1 借 20.00
15600_15607 3 贷 -2700.00
15600_15608 1 贷 -20000.00
15600_15609 9 借 57650.24
15600_15610 4 借 68859.00
15600_15611 1 贷 -780.00
15600_15612 4 借 15540.00
15600_15613 2 贷 -3895.00
15600_15615 7 贷 -25560.00
15600_15617 1 借 500.00
15600_合计 50 借 72228.24

15601_20080525_prt
15601_15600 4 贷 -91000.00
15601_15602 4 贷 -65150.00
15601_15604 5 借 4970.00
15601_15605 2 借 7340.00
15601_15606 2 借 1000.00
15601_15607 2 借 900.00
15601_15608 1 借 690.00
15601_15609 1 借 970.00
15601_15611 4 借 6800.00
15601_15612 2 借 73500.00
15601_15613 1 借 500.00
15601_15615 3 借 2190.00
15601_15616 1 贷 -105.00
15601_合计 32 贷 -57395.00


text2.txt

15600_20080526_01.p106_prt
15600_15601 9 借 44114.00
15600_15604 25 贷 -295670.00
15600_15605 2 借 303000.00
15600_15606 2 贷 -10000.00
15600_15607 1 借 45000.00
15600_15608 2 借 10320.00
15600_15609 2 借 526.00
15600_15610 4 贷 -44560.00
15600_15611 1 贷 -2300.00
15600_15612 5 贷 -3250.00
15600_15613 1 贷 -3003.00
15600_15615 4 借 31800.00
15600_15616 6 借 40990.00
15600_合计 64 借 116967.00

15601_20080526_01.1a1_prt
15601_15600 3 借 22900.00
15601_15602 2 贷 -8000.00
15601_15604 19 借 33560.00
15601_15605 5 借 9053.00
15601_15606 5 借 30247.03
15601_15607 8 借 62750.00
15601_15608 1 借 450.00
15601_15609 3 贷 -390.00
15601_15610 5 借 15600.00
15601_15611 3 借 6400.00
15601_15612 1 借 840.00
15601_15613 2 借 28400.00
15601_15615 3 贷 -48200.00
15601_合计 60 借 153610.03


想得到结果:
text1.txt和text.txt相同的字段1,相加字段2和字段4
1. 15600_200805
15600_15601 * * *
15600_15602 * * *
15600_15604 * * *
15600_15605 * * *
15600_......
15600_15617 * * *
15600_合计......

2. 15601_200805
15601_15601 * * *
15601_15602 * * *
15601_15604 * * *
15601_15605 * * *
15601_......
15601_15617 * * *
15601_合计......

3. 15602_200805
15602_......
15602_......

4. ......

注:
每月统计本机构代理其他机构的业务量
共16个机构(没有15603,15614)

Last edited by xycoordinate on 2008-5-30 at 02:26 PM ]


2008-5-29 19:24
查看资料  发送邮件  发短消息  网志  OICQ (226308607)  编辑帖子  回复  引用回复
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『第 2 楼』:   使用 LLM 解释/回答一下

for /l %a in (1 1 9)do findstr/b 1560%a *.txt&pause




山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
2008-5-29 19:31
查看资料  发短消息  网志   编辑帖子  回复  引用回复
xycoordinate
中级用户




积分 493
发帖 228
注册 2007-2-16
来自 安徽
状态 离线
『第 3 楼』:   使用 LLM 解释/回答一下

根据zw19750516的方法

@echo off&setlocal enabledelayedexpansion
echo 机构 笔数 借贷 金额
for /l %%i in (15600,1,15617) do call :lp %%i
echo 合计 !bi! !借贷! !num!.00
pause>nul&goto :eof
:lp
for /f "tokens=1,2,3,4 delims= " %%i in (1.txt) do (
if %%i equ %1 (
set str1=%%i&set a=%%l&set a=!a:-=!&set a=!a:~,-3!
if "%%k" equ "贷" (
set /a str2+=%%j,str4-=!a!,bi+=%%j,num-=!a!
) else (
set /a str2+=%%j,str4+=!a!,bi+=%%j,num+=!a!
)
if !str4! leq 0 (
set str3=货
) else (
set str3=借
)
)
)
if defined str1 echo !str1! !str2! !str3! !str4!.00
set str1=&set str2=0&set str3=&set str4=0


我修改了一下,得到的结果基本符合要求!!!

test.bat


@echo off&setlocal enabledelayedexpansion
echo 机构 笔数 借贷 金额
for /f %%i in (jgh.txt) do (
set jgh1=%%i
for /f %%I in (jgh.txt) do (
set jgh2=%%I
if !jgh1! NEQ !jgh2! set JG=!jgh1!_!jgh2!
for /f "tokens=1,2,3,4" %%i in (text.txt) do (
if %%i equ !JG! (
set str1=%%i
set a=%%l
set a=!a:.=!
set /a str2+=%%j,str4+=!a!,bi+=%%j,num+=!a!
if !str4! leq 0 (
set str3=货
) else (
set str3=借
)
)
)
if defined str1 echo !str1! !str2! !str3! !str4!
set str1=&set str2=0&set str3=&set str4=0

)
)


CMD>copy text1.txt+text2.txt text.txt
CMD>test.bat

机构 笔数 借贷 金额
15600_15601 15 借 3977300
15600_15602 2 借 2024500
15600_15604 33 货 -3259800
15600_15605 3 借 30000000
15600_15606 3 货 -998000
15600_15607 4 借 4230000
15600_15608 3 货 -968000
15600_15609 11 借 5817624
15600_15610 8 借 2429900
15600_15611 2 货 -308000
15600_15612 9 借 1229000
15600_15613 3 货 -689800
15600_15615 11 借 624000
15600_15616 6 借 4099000
15600_15617 1 借 50000
15601_15600 7 货 -6810000
15601_15600 7 货 -6810000
15601_15602 6 货 -7315000
15601_15604 24 借 3853000
15601_15605 7 借 1639300
15601_15606 7 借 3124703
15601_15607 10 借 6365000
15601_15608 2 借 114000
15601_15609 4 借 58000
15601_15610 5 借 1560000
15601_15611 7 借 1320000
15601_15612 3 借 7434000
15601_15613 3 借 2890000
15601_15615 6 货 -4601000
15601_15616 1 货 -10500


<img src="images/smilies/face-raspberry.png" align="absmiddle" border="0"><img src="images/smilies/face-wink.png" align="absmiddle" border="0">

Last edited by xycoordinate on 2008-5-30 at 02:17 PM ]


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




积分 493
发帖 228
注册 2007-2-16
来自 安徽
状态 离线
『第 4 楼』:  疑惑 使用 LLM 解释/回答一下


if defined str1 echo !str1! !str2! !str3! !str4!


if defined ???

不明白?
能解释一下吗?

if /?
......
IF DEFINED variable command

如果已定义环境变量,DEFINED 条件的作用跟 EXISTS 的一样,
除了它取得一个环境变量,返回的结果是 true。
......

Last edited by xycoordinate on 2008-5-30 at 02:23 PM ]


2008-5-30 14:19
查看资料  发送邮件  发短消息  网志  OICQ (226308607)  编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 5 楼』:   使用 LLM 解释/回答一下

Originally posted by xycoordinate at 2008-5-30 14:19:


if defined ???

不明白?
能解释一下吗?

if /?
......
IF DEFINED variable command

如果已定义环境变量,DEFINED 条件的作用跟 EXI ...

if definded str1可以这样理解如果发现不为空值的变量str1,在以上代码中如去掉这一句将会显示出如: 0 借/贷 0的行。




批处理之家新域名:www.bathome.net
2008-5-30 16:32
查看资料  发送邮件  发短消息  网志  OICQ (841615149)  编辑帖子  回复  引用回复
xycoordinate
中级用户




积分 493
发帖 228
注册 2007-2-16
来自 安徽
状态 离线
『第 6 楼』:   使用 LLM 解释/回答一下

Originally posted by zw19750516 at 2008-5-30 16:32:

if definded str1可以这样理解如果发现不为空值的变量str1,在以上代码中如去掉这一句将会显示出如: 0 借/贷 0的行。



原来如此!

谢谢!


2008-5-30 17:52
查看资料  发送邮件  发短消息  网志  OICQ (226308607)  编辑帖子  回复  引用回复
wangzenggogo
初级用户





积分 69
发帖 34
注册 2008-5-29
状态 离线
『第 7 楼』:   使用 LLM 解释/回答一下

有必要好好研究研究!


2008-5-30 20:57
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
xycoordinate
中级用户




积分 493
发帖 228
注册 2007-2-16
来自 安徽
状态 离线
『第 8 楼』:   使用 LLM 解释/回答一下

还有再加总15600和15601

???


2008-6-19 14:57
查看资料  发送邮件  发短消息  网志  OICQ (226308607)  编辑帖子  回复  引用回复

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


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



论坛跳转: