Board logo

标题: [文件操作] [已解决]批处理如何从所有txt文件提取相应内容后,合并到一个txt文件? [打印本页]

作者: magelit272    时间: 2011-9-28 10:39     标题: [已解决]批处理如何从所有txt文件提取相应内容后,合并到一个txt文件?

从每个文件中找出同时含  ◆最新消息◆(或 ◆控盘情况◆ 或 ◆概念题材◆ 或 ◆  行业新闻  ◆ 或 ◆  大事提醒  ◆ 或 ◆  八面来风  ◆ 或 ◆  公司概况  ◆ 或 ◆项目投资◆ 或 ◆  行业地位  ◆ 或 ◆  信息快讯  ◆ 或 ◆ 回顾展望 ◆ )、   2011-08-25  及  环比   这三个关键提示词,

把  环比  这个词前后180个字符的内容,提取出来。

并且排除财务表格中的有关环比的内容

每个txt文件相应的内容提取之后,

间隔一行,合成一个txt文件,这个文件名称为  提取合成,存放路径为  桌面  文件夹

合成后的这个txt文件自动打开,自动为最前窗口。

2011-08-25这个日期要是可调节的。




例如,下面给的三个txt文件,提取合成后显示为:(如果文件没有相应的内容,就没有内容显示。)


☆曾用名: 中国联通
◆ 回顾展望 ◆               ◇万国测评制作:更新时间:2011-08-25◇
   实现服务收入136.00 亿元,同比增长235.2%,季度平均环比增幅达到31.7%。

  ☆曾用名: 双汇实业->双汇发展->S双汇
◆  行业新闻  ◆
●2011-08-25 8月猪肉价格重拾升势(上海证券报)
     进入8月份以后,猪肉价格又悄然重拾升势。国家统计局24日发布的50个城
   市主要食品平均价格变动情况(8月11日到20日)显示,猪肉后臀尖价格达到3
   1.18 元/公斤,环比上涨0.3%,五花肉价格为30.22元/公斤,环比上涨0.4%。
   在8月上旬,猪肉后臀尖的价格环比持平,但五花肉价格环比上涨0.1%。


附件在20楼

请老师在百忙中解答。

祝老师一切顺利,万事如意。
作者: magelit272    时间: 2011-9-28 10:59

私自以为:先定下  ◆  信息快讯  ◆  查找范围的起点位置,再定下相邻    ◆  八面来风  ◆   
查找范围的终点位置,这两者之间查找日期和环比。

这样相邻的两两查找,确定出所需要的内容,然后提取等等。
作者: magelit272    时间: 2011-9-28 11:06

附件在5楼
作者: magelit272    时间: 2011-9-28 11:09

不好意思,由于100000个字节的限制,上面的也不完整,删去了最后面的部分。
作者: magelit272    时间: 2011-9-28 11:11

回复 4# magelit272

附件在20楼
作者: HAT    时间: 2011-9-28 11:11

回复 4# magelit272


能不能把文件压缩一下再上传?
作者: magelit272    时间: 2011-9-28 11:12

第一楼,附件没有显示,上一楼让它显示了出来。
作者: magelit272    时间: 2011-9-28 16:00

好的,压缩一下上传。

可我上传附件,只支持图片格式啊。


我怎办?
作者: ArdentMan    时间: 2011-9-28 21:00

个人理解:楼主描述的提取规则相当有问题!
建议楼主还是将你要达到的实际目的讲清楚为好!
不然这个问题我看悬~~~
作者: magelit272    时间: 2011-9-29 14:46

老师:您那里不清楚呢?

找出关键词,提取这个关键词前后180个字符的内容。

主要就是这。

请您告诉我,您那里不清楚。
作者: magelit272    时间: 2011-10-3 18:12

请各位老师百忙中解决,

不胜感谢。
作者: FOR    时间: 2011-10-3 22:42

没有超超超超超超超超超超超超超超超超超超超超超超超超超超超超超级理解能力的人是无法理解楼主的题意的。
作者: BAT1    时间: 2011-10-4 01:51

回复 12# FOR


    同意楼上的说法
作者: magelit272    时间: 2011-10-7 14:47

请老师先解决第一个问题:


怎么从txt文件,在黑方块  ◆  行业新闻  ◆  和  ◆  大事提醒  ◆  之间提取并显示含关键词  2011-08-25  环比  上下两行的内容?

这样的.bat,怎么写呢?
作者: awk    时间: 2011-10-7 15:07

回复 14# magelit272


你上传的3个附件,哪个里面有◆  大事提醒  ◆?
作者: magelit272    时间: 2011-10-7 15:26

本帖最后由 magelit272 于 2011-10-7 17:16 编辑

首先解决第一个问题:
在600050.txt里

◆ 回顾展望 ◆   
循环到  
◆  最新指标 (中期定期报告)  ◆  

即循环到最开头

.bat在
◆ 回顾展望 ◆
与相邻的
◆  最新指标 (中期定期报告)  ◆
之间
查找关键词   2011-08-25  环比

如果在相邻黑方块内查找到这两个关键词,就提取  环比  上下两行的内容

同理

在000895.txt里

◆  行业新闻  ◆
与相邻的
◆  大事提醒  ◆
之间
查找关键词   2011-08-25  环比

如果在相邻黑方块内查找到这两个关键词,就提取  环比  上下两行的内容

000026.txt查找不到那两个关键词,就不提取,不显示

如果相邻黑方块内  环比  关键词重复,就重复提取  环比  关键词上下两行的内容

还要提取☆这一行的内容

提取的内容之间空一行

这三个.txt文件提取后,合并成一个.txt文件


这样的.bat,怎么写呢?





提取的内容为:

☆曾用名: 中国联通
◆ 回顾展望 ◆               ◇万国测评制作:更新时间:2011-08-25◇
   实现服务收入136.00 亿元,同比增长235.2%,季度平均环比增幅达到31.7%。

  ☆曾用名: 双汇实业->双汇发展->S双汇
◆  行业新闻  ◆
●2011-08-25 8月猪肉价格重拾升势(上海证券报)
     进入8月份以后,猪肉价格又悄然重拾升势。国家统计局24日发布的50个城
   市主要食品平均价格变动情况(8月11日到20日)显示,猪肉后臀尖价格达到3
   1.18 元/公斤,环比上涨0.3%,五花肉价格为30.22元/公斤,环比上涨0.4%。
   在8月上旬,猪肉后臀尖的价格环比持平,但五花肉价格环比上涨0.1%。
作者: magelit272    时间: 2011-10-7 15:28

600050里面有
作者: magelit272    时间: 2011-10-7 15:30

本帖最后由 magelit272 于 2011-10-7 15:36 编辑

由于文件大,删减,就不能完整展示信息

想了办法,也一直传不上去

我的QQ  515526247

用QQ可以传文件
作者: Batcher    时间: 2011-10-7 16:52

回复 18# magelit272


压缩一下再上传,可以吗?
作者: magelit272    时间: 2011-10-7 16:55

回复 19# Batcher


    好的
这次分卷压缩,共四卷:
作者: magelit272    时间: 2011-10-7 16:56

本帖最后由 magelit272 于 2011-10-7 17:25 编辑

终于上传成功,谢谢老师们

请老师们继续解决我的问题
作者: magelit272    时间: 2011-10-11 11:06

回复 21# magelit272


    本帖已由batman(威士)大师完美、胜利完成,完成了原创性的编写代码工作,处理两千多个.txt文件,深表感谢和衷心的祝贺

下面就是这历史性的原创代码,以batman大师的名字命名:
  1. @echo off&setlocal enabledelayedexpansion
  2. del new*>nul 2>nul
  3. (for /f "delims=" %%a in ('dir /on /b *.txt') do (
  4.   setlocal
  5.   for /f "delims=" %%b in ('type %%a^&echo ◆结尾◆') do (
  6.     if defined ok if not defined "%%b" echo,%%b&set "ok="&set ""%%b"=a"
  7.     set "str=%%b"
  8.     if "!str:☆曾用名=!" neq "!str!" set "bt=!str!"
  9.     for %%c in ("◆控盘情况◆" "◆成交回报(单位:万元)◆" "◆  大事提醒  ◆" "◆  公司概况  ◆" "◆ 回顾展望 ◆" "◆结尾◆") do if "!str:%%~c=!" neq "!str!" set "flag="&set "str1="
  10.     for %%c in ("◆最新消息◆" "◆概念题材◆" "◆  行业新闻  ◆" "◆  八面来风  ◆" "◆  信息快讯  ◆") do (
  11.       if "!str:%%~c=!" neq "!str!" set "flag=a"&set "bk=!str!"
  12.       if "!str:◆ 回顾展望 ◆=!" neq "!str!" set "flag=a"&set "bk=!str! "
  13.     )
  14.     if defined flag (
  15.       if "!str:2011-08-25=!" neq "!str!" if "!str!" neq "!bk!" set "str1=!str! "
  16.       if defined str1 (
  17.         if "!str:环比=!" neq "!str!" (
  18.           for %%c in ("!bt!" "!bk!" "!str1!" "!var!" "!str!") do if not defined %%c echo %%~c&set "%%c=a"
  19.           for %%c in (bt bk) do set "%%c="
  20.           set "ok=a"
  21.         )
  22.       )
  23.     )
  24.     set "var=!str!"
  25.   )
  26.   endlocal&echo   ----------------------------------------------------------------------
  27. ))>new
  28. move /y new new.txt
  29. start new.txt
复制代码
这个代码用于:股市关于万国测评的浩如烟海的f10资料的特别内容提取、合成以及自动打开。
作者: magelit272    时间: 2011-10-11 11:52

上面两个文件是一样的
不好意思
作者: jayheight    时间: 2016-4-12 13:13

好厉害:):)




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2