中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-07-03 03:00
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请教如何在指定的行插入字符串 查看 891 回复 6
楼 主 请教如何在指定的行插入字符串 发表于 2008-05-04 09:42 ·  中国 上海 奉贤区 电信
中级用户
★★
积分 392
发帖 142
注册 2007-06-10 09:48
19年会员
UID 90856
性别 男
状态 离线
请教如何在指定的行插入字符串
2 发表于 2008-05-04 09:55 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
第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
3 发表于 2008-05-04 10:11 ·  中国 上海 上海地面通信息网络有限公司
中级用户
★★
积分 240
发帖 115
注册 2008-03-10 19:31
18年会员
UID 112561
性别 男
状态 离线
可以用change 啊,比如:
change tt.txt /from 1234 /to 1234567 /lines 15
不知道你的要求啊。这样行吗?
4 发表于 2008-05-04 11:11 ·  中国 上海 奉贤区 电信
中级用户
★★
积分 392
发帖 142
注册 2007-06-10 09:48
19年会员
UID 90856
性别 男
状态 离线
第一个可以,第二个简单,但是看不懂,如果我想要另存怎么办
5 发表于 2008-05-04 12:01 ·  中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
Originally posted by flyingphf at 2008-5-4 11:11 AM:
第一个可以,第二个简单,但是看不懂,如果我想要另存怎么办


change.exe的帮助文档里面写的很清楚^_^
想要另存为就不要用change.exe了,违背change.exe的本意了,呵呵。
6 我来做个较完善的回答吧: 发表于 2008-05-04 19:37 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
假如要把字串符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

批处理之家新域名:www.bathome.net
7 调用一下sed就比较简单了^_^ 发表于 2008-05-05 22:34 ·  中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
@echo off
sed -n '1,4p' srcfile>tmpfile
echo www.cn-dos.net>>tmpfile
sed -n '5,$p' srcfile>>tmpfile
move /y tmpfile srcfile
论坛跳转: