找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 26655|回复: 6

[文本处理] [已解决]BAT如何处理文本中的股票信息?

[复制链接]
发表于 2012-11-25 00:29:31 | 显示全部楼层 |阅读模式
我是看到了这个贴子http://www.bathome.net/viewthrea ... amp;extra=#pid94611,才知道这里的老师高手们能解决这个问题!特此求助!!

一、假设有3000个文件(每个文件名都是6位数字组成,后缀为.003,是股票代码,这些文件是大智慧F10的资料,不知道是什么类型,但是可以用txt打开);每个文件开头都是"◆  主营构成  ◆"这一行,能不能做个批处理把他们所有合并为一
个txt文件,暂时取名AA.txt,在AA.txt文件里面每次出现“  ◆  主营构成  ◆”的时候,自动在上面增加一个空行,写入本来的文件名(也就是股票代码),因为后面还要用到文件名(也就是股票代码),所以要写进去才行;例如文件600012.003合并进去以后在AA.txt文件里写成:

600012
◆  主营构成  ◆

我尝试合并了以下五个文件,因为没有代码,所以根本不知道每个"  ◆  主营构成  ◆"对应的是哪支股票,特此求助老师们,感谢!

二、接下来我还想在这个AA.txt文件里,采集出每只股票的第一栏内容(这里讲的第一栏是指每支股票资料中前两根横线中的内容,是图中用框框起来的部分),因为有的股票只有一两行,有的股票有十几行,所以应该只能以文件中的两根横线来定位,还有我只想要图中红框起来的这一列,而不想要后面的“主营收入”,“同比增长”,“主营收入占比”,“主营利润”这四列,不知道能不能实现;如果能实现的话,采集后新生成的文件,暂时取名NEW.txt;在NEW.txt里的格式,我想写成这样的(还是以600012为例):
600012        合宁高速公路,高界高速公路,宣广高速公路,连霍公路安徽段,宁淮高速公路天长段,广祠高速公路,205国道天长段新线,高速公路委托管理,路损赔偿,租金,施救;
{下面就一直这样写}
600013        …………
600014        …………

特此求助各位高手,达人,大师,老师,版主,管理员们!万分感谢!!!

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2012-11-25 00:41:56 | 显示全部楼层
batman已经退隐江湖了。
 楼主| 发表于 2012-11-25 09:11:25 | 显示全部楼层
请大师们出手江湖救急!感谢!
发表于 2012-11-25 11:37:33 | 显示全部楼层
本帖最后由 test 于 2012-11-25 21:39 编辑

第一个:

  1. @echo off
  2. cd.>AA.txt
  3. for %%i in (*.003) do (
  4.         echo %%~ni>>AA.txt
  5.         copy /b AA.txt+%%i AA.txt>nul
  6. )
  7. start AA.txt
复制代码
第二个:
在6字开头的股票代码前添加SH字符串,其他的股票代码前添加SZ

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. (for %%i in (*.003) do (
  4.         set "str1=%%~ni        "
  5.         if "!str1:~0,1!"=="6" (
  6.                 set str1=SH!str1!
  7.         ) else set str1=SZ!str1!
  8.         set num=0
  9.         for /f %%j in (%%i) do (
  10.                 set str2=%%j
  11.                 if !num! equ 1 (
  12.                         if not "!str2:~0,3!"=="───" set str1=!str1!%%j,
  13.                 )
  14.                 if "!str2:~0,3!"=="───" set /a num+=1
  15.         )
  16.         if defined str1 echo !str1:~0,-1!;
  17. ))>NEW.txt
  18. start NEW.txt
复制代码

评分

参与人数 1技术 +1 收起 理由
quartz123 + 1 太强大了,太感谢老师啦!感谢!!!

查看全部评分

 楼主| 发表于 2012-11-25 19:28:37 | 显示全部楼层
本帖最后由 quartz123 于 2012-11-25 19:32 编辑

遇到一个新问题,再请老师帮助下,谢谢!!

在上面的第二个批处理中,能不能自动识别出:6字头的代码,在前面加入SH两个字符,如600012,生成后变为SH600012;其他的如3字头、0字头的代码,在前面加入SZ两个字符,如300001,生成后变为SZ300001;000001,生成后变为SZ000001;

因为大智慧软件的自定义数据识别需要在前面区分出是上海(SH),还是深圳(SZ)的股票,再次感谢老师!
发表于 2012-11-25 21:40:10 | 显示全部楼层
4楼的第二个代码已经修改为:6字头的代码前添加SH字符,其余的添加SZ字符
 楼主| 发表于 2012-11-25 22:43:05 | 显示全部楼层
本帖最后由 quartz123 于 2012-11-25 23:18 编辑
4楼的第二个代码已经修改为:6字头的代码前添加SH字符,其余的添加SZ字符
test 发表于 2012-11-25 21:40



无与伦比的多谢老师,我搜索了下论坛,自己解决了制表符问题,再次向您致敬!!!多谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 03:55 , Processed in 0.022638 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表