|
xycoordinate
中级用户
积分 493
发帖 228
注册 2007-2-16 来自 安徽
状态 离线
|
『楼 主』:
文本合并计算2(问题已经基本解决,还有疑惑?)
text1.txt
Quote: | 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
Quote: | 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 |
|
|
plp626
银牌会员
钻石会员
积分 2278
发帖 1020
注册 2007-11-19
状态 离线
|
『第
2 楼』:
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 楼』:
根据zw19750516的方法
Quote: | @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
Quote: | @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
Quote: | 机构 笔数 借贷 金额
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 |
|
[ Last edited by xycoordinate on 2008-5-30 at 02:17 PM ]
|
|
2008-5-30 14:05 |
|
|
xycoordinate
中级用户
积分 493
发帖 228
注册 2007-2-16 来自 安徽
状态 离线
|
『第
4 楼』:
疑惑
Quote: | 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 |
|
|
bat-zw
金牌会员
永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
『第
5 楼』:
Quote: | 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 |
|
|
xycoordinate
中级用户
积分 493
发帖 228
注册 2007-2-16 来自 安徽
状态 离线
|
『第
6 楼』:
Quote: | Originally posted by zw19750516 at 2008-5-30 16:32:
if definded str1可以这样理解如果发现不为空值的变量str1,在以上代码中如去掉这一句将会显示出如: 0 借/贷 0的行。 |
|
原来如此!
谢谢!
|
|
2008-5-30 17:52 |
|
|
wangzenggogo
初级用户
积分 69
发帖 34
注册 2008-5-29
状态 离线
|
|
2008-5-30 20:57 |
|
|
xycoordinate
中级用户
积分 493
发帖 228
注册 2007-2-16 来自 安徽
状态 离线
|
『第
8 楼』:
还有再加总15600和15601
???
|
|
2008-6-19 14:57 |
|