[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

背景:在不同软件中进行数据传递,需要单独提取所需要的信息并进行简单加工。
想将代码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列的内容,列与列之间加入逗号分隔符
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

不要把包袱抖一半啊,你的处理逻辑是什么?N 从哪里来?0 到哪里去?顶上那几行是忽略掉吗?
有效求助需要给出三个关键内容:处理前、处理规则、处理后,这样别人才能明白你的意思,否则到时候改来改去,别人的时间被浪费在重复劳动上,你也没法及时得到有效答复。

TOP

回复 2# CrLf

非常感谢您的意见,已经对帖子重新编辑!顶上几行忽略掉,0舍去,N先暂不考虑~谢谢!

TOP

  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

评分人数

TOP

回复 4# CrLf


    非常感谢!谢谢!

TOP

返回列表