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

[文本处理] [已解决]批处理怎样在文本特征字符串所在行的后面段落添加指定文本内容?

文本a含有20行。
文本b有些行含有字符串“第1局”、“第2局”、或者“第一局”、“第二局”等。
想在文本b搜索含有“第*局”的行,在该行行首添加“标题:”,并在其下一行开始添加文本a的内容,并把结果输出到文本c。(文本b的其余部分全部进入文本c。)


文本b示例:
第一章黑卒底炮类
第一节黑象3进5式 一、红马二进三对卒3进1局型
第1局红炮八平六仕角炮局(1)
1. 兵七进一炮2平3
红进三、七兵,俗称"仙人指路",统称进兵局。黑以平炮瞄 兵,称为卒底炮或小当头,是目前应付进兵局最为流行的开局法。
2. 炮二平五象3进5 3.马二进三卒3进1

文本a见附件。不好意思,变更了一下。

谢谢您!
1

评分人数

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

想变成什么样的结果?举个例子说一下?

TOP

本帖最后由 lxh623 于 2011-9-7 16:06 编辑
想变成什么样的结果?举个例子说一下?
sxw 发表于 2011-9-7 15:22

谢谢!
例如:
标题:   第1局*****
分类:
来源:
赛事类型:
赛事:
轮次:
组别:
台次:
日期:
地点:
时间规则:
红方:
红等级分:
红方用时:
红队:
黑方:
黑等级分:
黑方用时:
黑队:
解说:杨典
录入:leescott
创建日期:
修改日期:
ECCO:
棋谱类型:实战全局/开局
对局种类:
结果:未知
结束方式:

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for %%i in (1 2 一 二) do (set "a=第%%i局"
  4. (findstr /i "!a!" b.txt)&&echo;!a!>标题
  5. )
  6. (findstr /i ".*" 标题*
  7. type a.txt)>x.txt
  8. del 标?
复制代码

TOP

本帖最后由 lxh623 于 2011-9-7 21:00 编辑

回复 4# JooKin
谢谢楼上。好像不对,而且1、2、一、二太少。有时候1-200,也这样输入,很麻烦。

TOP

本帖最后由 lvsehuaxue 于 2011-9-9 15:00 编辑
  1. @Echo Off
  2. (for /f "delims=" %%i in (b.txt) do (
  3.     echo %%i|findstr "第.局">nul&&(echo 标题:%%i&type a.txt)||echo %%i
  4. ))>c.txt
  5. pause
复制代码
1

评分人数

TOP

取消。通过文本编辑得以解决。
方法是:^(第.{1,3}局.*)$     替换为
标题:\1\n分类:\n来源:\n赛事类型:\n赛事:\n轮次:\n组别:\n台次:\n日期:\n地点:\n时间规则:\n红方:\n红等级分:\n红队:\n黑方:\n黑等级分:\n黑队:\n解说:杨典\n录入:leescott\n创建日期:\n修改日期:\nECCO:\n棋谱类型:实战全局/开局\n对局种类: \n结果:未知\n结束方式:\n

TOP

返回列表