Board logo

标题: 请教如何在指定的行插入字符串 [打印本页]

作者: flyingphf     时间: 2008-5-4 09:42    标题: 请教如何在指定的行插入字符串

请教如何在指定的行插入字符串
作者: slore     时间: 2008-5-4 09:55
第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

作者: terrytong     时间: 2008-5-4 10:11
可以用change 啊,比如:
change tt.txt /from 1234 /to 1234567 /lines 15
不知道你的要求啊。这样行吗?
作者: flyingphf     时间: 2008-5-4 11:11
第一个可以,第二个简单,但是看不懂,如果我想要另存怎么办
作者: HAT     时间: 2008-5-4 12:01


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

change.exe的帮助文档里面写的很清楚^_^
想要另存为就不要用change.exe了,违背change.exe的本意了,呵呵。
作者: bat-zw     时间: 2008-5-4 19:37    标题: 我来做个较完善的回答吧:

假如要把字串符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]
作者: HAT     时间: 2008-5-5 22:34    标题: 调用一下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