中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-07 12:53
48,040 主题排行 / 350,125 发帖 / 今日 0 篇 / 48,252 会员排行
DOS批处理 & 脚本技术(批处理室) » [求助]关于多个文本文件的指定数据统计
可打印版本  2,001 / 21
第1楼 dreamboc 发表于 2008-01-27 22:32
初级用户 发帖 9 积分 20
[求助]关于多个文本文件的指定数据统计
大家好,最近工作上遇到一件麻烦事啊。问朋友说是用批处理来处理要快一些,但苦于不了解这个,因此特来此请教。
因为快到春节了,要总结上一年的工作,而07的帐户要处理,问题如下。
有多个文件夹,命名方式如20070101一直到20071231,而每个文件夹里有一个TXT文本文件,这些文本文件都是一个名字,比如11.TXT
打开11.TXT,内容如下,最上边是文档说明,时间内别之类,然后下面就是各种产品的销量,价格,经手人,等等
比如 1月1日 产品销售统计表
XXX公司
部门号 操作员 产品类别 数量 价格 总金额
。。 。。 。。 。。 。。 。。
。。 。。 。。 。。 。。 。。
。。 。。 。。 。。 。。 。。
。。 。。 。。 。。 。。 。。
。。 。。 。。 。。 。。 。。
等等,每天的TXT表格式都是如此。
我想统计销售总金额和操作员的交易次数应该怎么办啊。
我刚刚接手,烦啊。
期待大家指教
如果有能解决的朋友,也请把思路告诉我,日后再碰到类似问题 ,我也好处理啊。
非常感谢
第2楼 suntb 发表于 2008-01-27 22:56
高级用户 发帖 277 积分 581
用for解决吧,不过我也正在学习中

期待高手,顺便学习下
第3楼 fastslz 发表于 2008-01-27 23:01
铂金会员 发帖 2,315 积分 5,493 来自 上海
既然求别人帮忙,干吗不把样例贴出来
另外交易次数怎么求和?
第4楼 dreamboc 发表于 2008-01-27 23:25
初级用户 发帖 9 积分 20
嘿嘿,数据不带在身上啊,明天来贴。
交易次数求和就是各个交易员出现的次数啦
第5楼 fastslz 发表于 2008-01-27 23:34
铂金会员 发帖 2,315 积分 5,493 来自 上海
那再说明操作员数大概多少个,总金额格式 1.11?

[ Last edited by fastslz on 2008-1-27 at 11:37 PM ]
第6楼 dreamboc 发表于 2008-01-28 21:53
初级用户 发帖 9 积分 20
怎么不可以上传附件呀,详细资料可以联系bluedream5566@126.com或者留个地址我发过去呀
第7楼 fastslz 发表于 2008-01-28 22:40
铂金会员 发帖 2,315 积分 5,493 来自 上海
内容贴上来就可以了(10~20行)
第8楼 dreamboc 发表于 2008-01-28 22:52
初级用户 发帖 9 积分 20
******************************************************************************************************************************
* 销售表 *
******************************************************************************************************************************
客户帐号 产品代码 公司帐号 交易金额 交易类型
============= ============= ================ ==================
0691280 012 542660 3,000.00 111
1610530 803 616183 20,000.00 111
0855230 003 007598 10,000.00 111
0211090 001 435238 20,000.00 111
0861920 001 561694 12,000.00 111
0747690 001 544146 20,000.00 111
0800420 803 543999 50,000.00 111
0385610 803 266971 10,000.00 111
1039860 803 050714 20,000.00 111
0956590 005 564250 10,000.00 111
第9楼 fastslz 发表于 2008-01-28 23:25
铂金会员 发帖 2,315 积分 5,493 来自 上海
这样恐怕有点麻烦,客户帐号很多怕变量不够用,也没这方面经验
看看其他会员有更好办法么~
第10楼 Rulition 发表于 2008-01-28 23:38
初级用户 发帖 11 积分 26
可考虑用 DOS 结合 XLS (或 SQL) 来完成,思路如下:

1)既然"帐户有多个文件夹,命名方式如20070101一直到20071231,且每个文件夹里有一个TXT文本文件,这些文本文件都是一个名字,比如11.TXT"
那么就能用 DOS 中的 FOR 和 COPY 合并这些 11.TXT 到一个文件中.

2)对上一步生成的文件,使用 DOS 中的 SORT 进行排序,只取以下部分:
0691280 012 542660 3,000.00 111
再对这些有规律的部分加上列名:
客户帐号 产品代码 公司帐号 交易金额 交易类型
形成下面的文本:
客户帐号 产品代码 公司帐号 交易金额 交易类型
0691280 012 542660 3,000.00 111
1610530 803 616183 20,000.00 111

3)将上面的内容导入到EXCEL中,
使用"分类汇总"操作,就能得到"操作员的交易次数"
使用"列汇总"操作,就能得到"销售总金额"

*将(2)的内容导入到SQL表中,也可得到结果.
第11楼 junchen2 发表于 2008-01-28 23:39
高级用户 发帖 219 积分 537 来自 杭州--半山
具体达到什么要求,结果形式发上来我可以帮你。谢谢!
第12楼 dreamboc 发表于 2008-01-28 23:51
初级用户 发帖 9 积分 20
只要累积金额就够了,不用考虑客户帐号的
第13楼 dreamboc 发表于 2008-01-28 23:58
初级用户 发帖 9 积分 20
数据马上传给你,谢谢啦
第14楼 3742668 发表于 2008-01-29 00:19
荣誉版主 发帖 718 积分 2,013
Originally posted by fastslz at 2008-1-28 23:25:
这样恐怕有点麻烦,客户帐号很多怕变量不够用,也没这方面经验
看看其他会员有更好办法么~

最简单的就是利用临时变量了。
先用for读取每个文本然后把交易金额echo>>到以操作员为名的文本文件中,最后再分别统计,例如有test.txt内容如下:
0691280 012 542660 3,000.00 111
1610530 803 616183 20,000.00 111
0855230 003 007598 10,000.00 111
0211090 001 435238 20,000.00 111
0861920 001 561694 12,000.00 111
0747690 001 544146 20,000.00 111
0800420 803 543999 50,000.00 111
0385610 803 266971 10,000.00 111
1039860 803 050714 20,000.00 111
0956590 005 564250 10,000.00 111


需要注意的是,如果test.txt中包含有标题行需要在for语句中使用skip开关,另外根据具体的要求也应该作相应的改变,包括显示的格式,数据文件的格式,以及增加遍历所有数据文件的语句,另外还要注意批处理最头疼的特殊字符问题.
就这个问题来说,如果数据文件不多,可以尝试用Excel来解决,如果数据多的话,可以尝试用vbs来解决.相信它们比起批处理起来应该会快捷准确一些.

『第 12 楼』:

只要累积金额就够了,不用考虑客户帐号的

如果要求这么低的话,那么把for命令多学习一下,应该会很轻松地解决。
第15楼 zh159 发表于 2008-01-29 00:24
金牌会员 发帖 1,467 积分 3,687
试试这个,用Excel打开list.csv后期处理

因为要排除标题,所以用了两次findstr,效率稍慢
1 2  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023