中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请教如何在指定的行插入字符串
作者:
标题: 请教如何在指定的行插入字符串 上一主题 | 下一主题
flyingphf
中级用户





积分 392
发帖 142
注册 2007-6-10
状态 离线
『楼 主』:  请教如何在指定的行插入字符串

请教如何在指定的行插入字符串

2008-5-4 09:42
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 2 楼』:  

第5行后插入……
@echo off&setlocal enabledelayedexpansion
Set Addline=5
Set Addtext=o(∩_∩)o
for /f "delims=" %%i in (a.txt) do (
echo %%i>>b.txt
set /a n+=1
if !n! EQU %Addline% goto :Break
)
:Break
echo %Addtext%>>b.txt
for /f "skip=%Addline% delims=" %%i in (a.txt) do echo %%i>>b.txt
echo 处理完毕!按任意键退出……
pause>nul


2008-5-4 09:55
查看资料  发短消息 网志   编辑帖子  回复  引用回复
terrytong
中级用户





积分 240
发帖 115
注册 2008-3-10
状态 离线
『第 3 楼』:  

可以用change 啊,比如:
change tt.txt /from 1234 /to 1234567 /lines 15
不知道你的要求啊。这样行吗?

2008-5-4 10:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
flyingphf
中级用户





积分 392
发帖 142
注册 2007-6-10
状态 离线
『第 4 楼』:  

第一个可以,第二个简单,但是看不懂,如果我想要另存怎么办

2008-5-4 11:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 5 楼』:  



  Quote:
Originally posted by flyingphf at 2008-5-4 11:11 AM:
第一个可以,第二个简单,但是看不懂,如果我想要另存怎么办

change.exe的帮助文档里面写的很清楚^_^
想要另存为就不要用change.exe了,违背change.exe的本意了,呵呵。

2008-5-4 12:01
查看资料  发短消息 网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 6 楼』:  我来做个较完善的回答吧:

假如要把字串符www.cn-dos.net插入a.txt第5行前面,同时改写a.txt:
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in ('type a.txt') do (
     set /a n+=1
     if !n! equ 1 (
        echo %%i>a.txt
        ) else (
        if !n! equ 5 (
          echo www.cn-dos.net>>a.txt&echo %%i>>a.txt
          ) else (
          echo %%i>>a.txt
       )
    )
)     
start a.txt
如要另存为b.txt:
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in (a.txt) do (
     set /a n+=1
     if !n! equ 5 (
        echo www.cn-dos.net>>b.txt&echo %%i>>b.txt
        ) else (
        echo %%i>>b.txt
    )
)
start b.txt
[/code]



批处理之家新域名:www.bathome.net
2008-5-4 19:37
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 7 楼』:  调用一下sed就比较简单了^_^


@echo off
sed -n '1,4p' srcfile>tmpfile
echo www.cn-dos.net>>tmpfile
sed -n '5,$p' srcfile>>tmpfile
move /y tmpfile srcfile


2008-5-5 22:34
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: