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

[文本处理] [已解决]批处理如何在文本中含有指定字符串的所在行相邻的几行插入指定内容

[复制链接]
发表于 2015-6-14 09:54:59 | 显示全部楼层 |阅读模式
求教大神,谢谢了

1,搜索文本中特定字符 如“*help me”,执行的 插入操作

a,  在 *help me 前面插入新的两行
*help all
09876543

b, 在  *help me 及下面 六行的行首 插入特定字符@

c,在  *help me 中的 fg 字符 下面 插入数字
   搜索到的第一个下插入 1
   后面所有的         插入2

2,搜索文本中  *help xdfus 替换 为 *help us

附件:

评分

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

查看全部评分

发表于 2015-6-15 22:51:42 | 显示全部楼层
本帖最后由 bailong360 于 2015-6-17 22:19 编辑
  1. #? 2>nul&@gawk -f %0 "初始.txt">$&move /y $ "初始.txt"&exit
  2. {
  3. gsub("*help xdfus","*help us")
  4. if ($0 ~ "*help me") {
  5.     print "*help all"
  6.     print "09876543"
  7.     print ""
  8.     bMatch = 7
  9. }
  10. if (bMatch != 0 &&$0 !~ /^$/) {
  11.     $0 = "@"$0
  12.     bMatch-=1
  13. }
  14. print $0
  15. if ($0 ~ /fg$/) {
  16.     if (jud != 5) {
  17.         print "                 1"
  18.         jud = 5
  19.     } else {
  20.         print "                 2"
  21.     }
  22. }
  23. }
复制代码
 楼主| 发表于 2015-6-16 19:37:05 | 显示全部楼层
bailong360 发表于 2015-6-15 22:51



    谢谢,
    我是批处理新手,我复制了代码,保存.bat格式运行后,
    生成的目标 是空的文件,
    是我哪里操作不对吗,
    如果不生成目标文件,在源文件上执行上述操作,又如何写代码呢
    再次感谢
发表于 2015-6-16 21:55:32 | 显示全部楼层
回复 3# nsdor
需要下载gawk.exe与批处理放在同一目录下执行,下载地址见签名档
 楼主| 发表于 2015-6-17 15:04:09 | 显示全部楼层
回复  nsdor
需要下载gawk.exe与批处理放在同一目录下执行,下载地址见签名档
bailong360 发表于 2015-6-16 21:55



    谢谢,
   大侠,能否写一个不用第三方软件的,只是一个批处理的呢
   再次感谢
发表于 2015-6-17 16:47:51 | 显示全部楼层
回复 2# bailong360


    # 不如 * 或者 ? 来得严谨,万一目录下有个 #.bat 呢?

评分

参与人数 1技术 +1 收起 理由
bailong360 + 1 感谢指正!

查看全部评分

 楼主| 发表于 2015-6-17 16:56:23 | 显示全部楼层
bailong360 发表于 2015-6-15 22:51



    如果仅在第一个*help me 前面
   插入 *help all
              0987654321

   又要怎么修改呢?

  谢谢
发表于 2015-6-17 22:21:11 | 显示全部楼层
回复 7# nsdor
  1. #? 2>nul&@gawk -f %0 "初始.txt">$&move /y $ "初始.txt"&exit
  2. {
  3. gsub("*help xdfus","*help us")
  4. if ($0 ~ "*help me"&&jud2 != 5) {
  5.     print "*help all"
  6.     print "09876543"
  7.     print ""
  8.     bMatch = 7
  9.     jud2 = 5
  10. }
  11. if (bMatch != 0 &&$0 !~ /^$/) {
  12.     $0 = "@"$0
  13.     bMatch-=1
  14. }
  15. print $0
  16. if ($0 ~ /fg$/) {
  17.     if (jud != 5) {
  18.         print "                 1"
  19.         jud = 5
  20.     } else {
  21.         print "                 2"
  22.     }
  23. }
  24. }
复制代码

评分

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

查看全部评分

 楼主| 发表于 2015-6-22 10:02:10 | 显示全部楼层
谢谢,bailong360
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 23:35 , Processed in 0.033299 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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