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

[文本处理] [已解决]提取文本中以.START到.ENDS开头之间的段落到新的文本中

本帖最后由 syqh2010 于 2015-3-4 00:24 编辑

文本内容如下:
.START A1 Clk Clr Data Q QB
CB Clk Vd Vd PM25 3 250n
CB Clk Vd Vd PM25 3 250n
、、此处省略500行
.ENDS A1
.START B1 v1p A B Out Obar Gn V
​M1 1 B Gn 0 NM25 1.5 250n
M2 Ot A  0 NM25 1.5 250n
、、此处省略500行
.ENDS B1
提取以.START到.ENDS开头字母之间的段落,并以.ENDS之后的一个单词作为每个新文件的文件名。
参考老贴,用以下代码可以达到效果,但运行速度较慢。(我的文本行数内容较多,达2000行)
请行家给一个速度快一点的代码,达到一样的效果,谢谢!sed,纯批都行。
  1. @echo off
  2. for /f "tokens=1*" %%a in ('type "a.txt"') do (
  3.         if defined flag (
  4.                 if /i "%%a" == ".ENDS" (
  5.                         move $ "%%b.txt" & set "flag="
  6.                 ) else echo,%%a %%b>>$
  7.         ) else if /i "%%a" == ".START" set flag=1
  8. )
  9. ::pause
复制代码
老贴见:
http://www.bathome.net/viewthrea ... &from=favorites

以下贴中兄弟给的代码已实现要求:
http://www.bathome.net/viewthread.php?tid=33855&highlight=

TOP

返回列表