标题: 求助:FOR命令计算
[打印本页]
作者: xycoordinate
时间: 2010-9-28 11:07
标题: 求助: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 ]
作者: xycoordinate
时间: 2010-9-30 16:41
自己顶!!!
@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 ]
作者: xycoordinate
时间: 2010-10-3 23:42
主要是中间有个标志变化 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 ]
作者: zhoupeng243
时间: 2010-10-4 14:51
标题: 难判断什么时候每项小计算完,只好最后显示小计
@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!
作者: xycoordinate
时间: 2010-10-5 00:06
谢谢!
我后面还有其他机构15602 15604 15605 ……15610 15611 15612……
前面都有定义
num156??=0
???
[
Last edited by xycoordinate on 2010-10-5 at 10:03 ]