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

[文本处理] [已解决]BAT怎样定点提取文本内容?

[复制链接]
发表于 2013-8-4 17:51:59 | 显示全部楼层 |阅读模式
背景:在不同软件中进行数据传递,需要单独提取所需要的信息并进行简单加工。
想将代码1中的部分内容提取出来转化为代码2的形式,大侠们帮忙看看怎么弄~谢谢
代码1(处理前):
  1. !! ANSYS Input Deck Generated by HyperMesh Version  : 11.0.0.47
  2. !! Generated using HyperMesh-Ansys Template Version : 11.0.0.47
  3. /PREP7
  4. ...
  5. ...
  6. ...
  7. NBLOCK,6,SOLID
  8. (3i8,6e16.9)
  9.       18       0       0 0.4615384615385             1.2             3.0
  10.       17       0       0 0.5538461538462             1.2             3.0
  11.       16       0       0 0.6461538461538             1.2             3.0
  12.       15       0       0 0.7384615384615             1.2             3.0
  13.       14       0       0 0.8307692307692             1.2             3.0
  14.       13       0       0 0.9230769230769             1.2             3.0
  15.       12       0       0 1.0153846153846             1.2             3.0
  16.       11       0       0 1.1076923076923             1.2             3.0
复制代码
代码2(处理后):
  1. 18 , 0.4615384615385,  1.2,  3.0
  2. 17 , 0.5538461538462,  1.2,  3.0
  3. 16 , 0.6461538461538,  1.2,  3.0
  4. 15 , 0.7384615384615,  1.2,  3.0
  5. 14 , 0.8307692307692,  1.2,  3.0
  6. 13 , 0.9230769230769,  1.2,  3.0
  7. 12 , 1.0153846153846,  1.2,  3.0
  8. 11 , 1.1076923076923,  1.2,  3.0
复制代码
处理规则:
①代码1中的(3i8,6e16.9)为标志,表示遇到该行时,就开始提取文本内容。
②只提取代码1中第1,4,5,6列的内容,列与列之间加入逗号分隔符

评分

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

查看全部评分

发表于 2013-8-4 18:11:24 | 显示全部楼层
不要把包袱抖一半啊,你的处理逻辑是什么?N 从哪里来?0 到哪里去?顶上那几行是忽略掉吗?
有效求助需要给出三个关键内容:处理前、处理规则、处理后,这样别人才能明白你的意思,否则到时候改来改去,别人的时间被浪费在重复劳动上,你也没法及时得到有效答复。
 楼主| 发表于 2013-8-4 18:27:14 | 显示全部楼层
回复 2# CrLf

非常感谢您的意见,已经对帖子重新编辑!顶上几行忽略掉,0舍去,N先暂不考虑~谢谢!
发表于 2013-8-4 18:47:03 | 显示全部楼层
  1. @echo off
  2. (for /f "tokens=1,4-6" %%a in (1.txt) do (
  3.    if defined begin echo %%a,%%b,%%c,%%d
  4.    if "%%a"=="(3i8,6e16.9)" set begin=true
  5. ))>2.txt
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2013-8-4 19:00:05 | 显示全部楼层
回复 4# CrLf


    非常感谢!谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 00:25 , Processed in 0.020014 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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