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

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

[复制链接]
发表于 2011-9-7 14:28:14 | 显示全部楼层 |阅读模式
文本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见附件。不好意思,变更了一下。

谢谢您!

评分

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

查看全部评分

发表于 2011-9-7 15:22:46 | 显示全部楼层
想变成什么样的结果?举个例子说一下?
 楼主| 发表于 2011-9-7 15:50:55 | 显示全部楼层
本帖最后由 lxh623 于 2011-9-7 16:06 编辑
想变成什么样的结果?举个例子说一下?
sxw 发表于 2011-9-7 15:22

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

  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 标?
复制代码
 楼主| 发表于 2011-9-7 20:55:11 | 显示全部楼层
本帖最后由 lxh623 于 2011-9-7 21:00 编辑

回复 4# JooKin
谢谢楼上。好像不对,而且1、2、一、二太少。有时候1-200,也这样输入,很麻烦。
发表于 2011-9-9 14:56:06 | 显示全部楼层
本帖最后由 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技术 +1 收起 理由
lxh623 + 1 谢谢!

查看全部评分

 楼主| 发表于 2011-9-9 21:17:04 | 显示全部楼层
取消。通过文本编辑得以解决。
方法是:^(第.{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
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 06:22 , Processed in 0.018644 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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