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

[文本处理] 批处理如何修改txt文本在指定行下面添加文字?

两个问题:

第一个,需求如下
           
我有一个文本文档1.txt ,我要在第7行下面添加以下内容:

  1. qewqeqwe
  2. dfgdgaweqe
  3. dsadadsada
复制代码


请问,如何实现?


第二个,需求如下

我有一个文本文档2.txt ,我要在文本中搜索“123”这样的字,然后在“123”这行下面增加如下内容:

  1. qewqeqwe
  2. dfgdgaweqe
  3. dsadadsada
复制代码


请问,如何实现?

发帖前先搜索一下吧!
看山是山,看山不是山!

TOP

这些问题论坛都有现成的答案的,楼主怎么就是不先搜索下。。。

问题一
  1. @echo off
  2. (for /f "tokens=1,2 delims=:" %%a in ('findstr /n .* 1.txt') do (
  3.        echo %%b
  4.        if %%a equ 7 echo qewqeqwe&echo dfgdgaweqe&echo dsadadsada
  5. ))>1.txt
  6. start 1.txt
复制代码
问题二
  1. @echo off
  2. (for /f "delims=" %%a in (2.txt) do (
  3.        echo %%a
  4.        if "%%a" equ "123" echo qewqeqwe&echo dfgdgaweqe&echo dsadadsada
  5. ))>2.txt
  6. start 2.txt
复制代码

[ 本帖最后由 batman 于 2010-2-4 10:29 编辑 ]
***共同提高***

TOP

第一个
  1. sed -i "7a\qewqeqwe\ndfgdgaweqe\ndsadadsada" a.txt
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

第二个
  1. sed -i "/123/a\qewqeqwe\ndfgdgaweqe\ndsadadsada" a.txt
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

@echo off
(for /f "tokens=1,2 delims=:" %%a in ('findstr /n .* 1.txt') do (
       echo %%b
       if %%a equ 7 echo qewqeqwe&echo dfgdgaweqe&echo dsadadsada
))>1.txt
start 1.txt

我存在了一个BAT里 怎么不行?

1.TXT 里的内容
1
2
3
4
5
6
7

运行BAT后内容全清空了 什么也没有

TOP

sed -i "7a\qewqeqwe\ndfgdgaweqe\ndsadadsada" 1.txt
我存在了一个BAT里 运行后没反应

1.TXT里的内容不变

TOP

回复 6楼 的帖子


))>1.txt
改成
))>result.txt
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 7楼 的帖子

你有sed.exe么?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

原帖由 Batcher 于 2010-5-3 09:32 发表
你有sed.exe么?


没有 我在百度找不到SED.EXE 的下载

板主有下载链接没,下载后要放在哪

TOP

原帖由 jianmp3 于 2010-5-3 09:45 发表


没有 我在百度找不到SED.EXE 的下载

板主有下载链接没,下载后要放在哪
http://bbs.bathome.net/thread-1114-1-1.html
放到批处理所在目录或system32目录等
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

原帖由 hanyeguxing 于 2010-5-3 10:00 发表
http://bbs.bathome.net/thread-1114-1-1.html
放到批处理所在目录或system32目录等


谢谢楼上的 ,还有再问最后个问题
  1. @echo off
  2. (for /f "tokens=1,2 delims=:" %%a in ('findstr /n .* 1.txt') do (
  3.        echo %%b
  4.        if %%a equ 7 echo qewqeqwe&echo dfgdgaweqe&echo dsadadsada
  5. ))>result.txt
复制代码
  1. sed -i "7a\qewqeqwe\ndfgdgaweqe\ndsadadsada" 1.txt
复制代码
这两个BAT添加的内容是在第7行下面,也就是第8行了

如果内容是要显示在第7行的内容后面 这两段BAT要怎么改了

TOP

以第一个为例:
  1. @echo off
  2. (for /f "tokens=1,2 delims=:" %%a in ('findstr /n .* 1.txt') do if %%a==7 (echo %%b追加的字符) else echo %%b)>11.txt
复制代码
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

原帖由 hanyeguxing 于 2010-5-3 11:07 发表
以第一个为例:@echo off
(for /f "tokens=1,2 delims=:" %%a in ('findstr /n .* 1.txt') do if %%a==7 (echo %%b追加的字符) else echo %%b)>11.txt


谢谢了

简单明了

TOP

返回列表