中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-02 03:38
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何在已存在的文件加入指定的行 查看 1,210 回复 13
楼 主 如何在已存在的文件加入指定的行 发表于 2006-10-09 04:25 ·  新加坡
中级用户
★★
积分 249
发帖 64
注册 2005-06-03 00:00
21年会员
UID 39315
性别 男
状态 离线
如何在已存在的文件中加入指定的内容:
比如有一个AB.TXT文件,里面只有一行内容.另一个BC.TXT文件已存在多行内容,我现在要在BC.TXT中的第二行和第5行下加入AB.TXT中的内容,怎么写?
2 发表于 2006-10-09 05:35 ·  中国 北京 联通
银牌会员
★★★
努力做坏人
积分 1,185
发帖 438
注册 2006-08-28 12:00
19年会员
UID 61449
来自 北京
状态 离线
@echo off
set a=&set /p a=<AB.txt
for /f "tokens=1* delims=:" %%a in ('findstr /n . BC.txt') do (
echo %%b>>tmp.txt
if "%%a"=="2" echo %a%>>tmp.txt
if "%%a"=="5" echo %a%>>tmp.txt
)
START TMP.TXT

粗糙的写了一下,不过好像还可以更加简单,算了,该下班了,明天在说吧
我今后在论坛的目标就是做个超级坏人!!!
3 发表于 2006-10-09 05:36 ·  中国 湖南 娄底 新化县 电信
银牌会员
★★★
积分 1,218
发帖 485
注册 2006-07-21 21:24
20年会员
UID 58987
来自 湖南.娄底
状态 离线
代码已修正:


@echo off
set /p ii=<ab.txt
setlocal enabledelayedexpansion
for /f "delims=" %%i in (bc.txt) do (
echo %%i>>temp.txt
set /a num+=1
if "!num!"=="2" echo %ii%>>temp.txt
if "!num!"=="5" echo %ii%>>temp.txt
)


[ Last edited by pengfei on 2006-10-9 at 08:01 ]
4 发表于 2006-10-09 06:43 ·  中国 四川 南充 电信
超级版主
★★★★
我爱DOS
积分 5,310
发帖 2,044
注册 2005-09-26 12:00
20年会员
UID 42843
性别 男
来自 四川南充
状态 离线
3楼的不符合要求。
@echo off
for /f "tokens=1* delims=:" %%a in ('findstr /n . BC.txt') do (
echo %%b
if "%%a"=="2" type ab.txt
if "%%a"=="5" type ab.txt
)>>tmp.txt
5 发表于 2006-10-09 08:01 ·  中国 湖南 娄底 电信
银牌会员
★★★
积分 1,218
发帖 485
注册 2006-07-21 21:24
20年会员
UID 58987
来自 湖南.娄底
状态 离线
发现是我理解错误...
6 发表于 2006-10-09 10:18 ·  新加坡
中级用户
★★
积分 249
发帖 64
注册 2005-06-03 00:00
21年会员
UID 39315
性别 男
状态 离线
我还是帖上我的内容吧:
以下是修改前MENU.LST文件中的内容:
timeout 30
default 5
splashimage (hd0,0)/maotao/win2008.xpm.gz
fontfile (hd0,0)/maotao/fonts

title 启动 maotao最终修改版xpe
chainloader /maotao/ldrxpe

title 运行矮人工作室DOS工具盘4.2
root (hd0,0)
kernel (hd0,0)/maotao/memdisk.gz
initrd (hd0,0)/maotao/ar4.img

title 运行多功能GHOST 8.3
kernel (hd0,0)/maotao/memdisk.gz
initrd (hd0,0)/maotao/ghost.img

title 返回硬盘第一分区Windows菜单或启动该Window
root (hd0,0)
chainloader +1

title 重新启动计算机
reboot

title 关闭计算机
halt

AB.TXT中的内容如下:(是一个可变化的MD5密码)
$1$6$M/C73ICWnhubAdHfe8BjZ1

要修改MENU.LST中的内容为:
timeout 30
default 5
splashimage (hd0,0)/maotao/win2008.xpm.gz
fontfile (hd0,0)/maotao/fonts
password --md5 $1$6$M/C73ICWnhubAdHfe8BjZ1

title 启动 maotao最终修改版xpe
password --md5 $1$6$M/C73ICWnhubAdHfe8BjZ1
chainloader /maotao/ldrxpe

title 运行矮人工作室DOS工具盘4.2
password --md5 $1$6$M/C73ICWnhubAdHfe8BjZ1
root (hd0,0)
kernel (hd0,0)/maotao/memdisk.gz
initrd (hd0,0)/maotao/ar4.img

title 运行多功能GHOST 8.3
password --md5 $1$6$M/C73ICWnhubAdHfe8BjZ1
kernel (hd0,0)/maotao/memdisk.gz
initrd (hd0,0)/maotao/ghost.img

title 返回硬盘第一分区Windows菜单或启动该Window
root (hd0,0)
chainloader +1

title 重新启动计算机
reboot

title 关闭计算机
halt

且以后可根据AB.TXT的变化内容来随时修改MENU.LST
7 发表于 2006-10-11 18:55 ·  新加坡
中级用户
★★
积分 249
发帖 64
注册 2005-06-03 00:00
21年会员
UID 39315
性别 男
状态 离线
看来是没希望了
8 发表于 2006-10-12 00:45 ·  中国 广东 佛山 广东睿江科技有限公司
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
Originally posted by tclshx at 2006-10-11 18:55:
看来是没希望了

  你应该好好揣摩一下以上的代码,不要指望别人把所有的事情都帮你解决完。自己学到方法才是最重要的,否则,下次碰到一个类似的问题你还是解决不了。

[ Last edited by namejm on 2006-10-12 at 00:48 ]
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
9 发表于 2006-10-12 05:22 ·  中国 北京 中移铁通
荣誉版主
★★★
积分 1,338
发帖 356
注册 2005-07-15 12:09
21年会员
UID 40733
性别 男
状态 离线
想说的 namejm 兄已经说了。
楼主试试下面的命令,可简单解决你的问题。

sed -e "2rAB.txt" -e "5rAB.txt" BC.TXT

sed 下载:http://www.student.northpark.edu/pemente/sed/gsed407x.zip

[ Last edited by 无奈何 on 2006-10-14 at 06:21 ]
  ☆开始\运行 (WIN+R)☆
%ComSpec% /cset,=何奈无── 。何奈可无是原,事奈无做人奈无&for,/l,%i,in,(22,-1,0)do,@call,set/p= %,:~%i,1%<nul&ping/n 1 127.1>nul

10 sed怎么用? 发表于 2006-10-12 06:17 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
Originally posted by 无奈何 at 2006-10-12 05:22:
想说的 namejm 兄已经说了。
楼主试试下面的命令,可简单解决你的问题。

sed "2~3rAB.txt" BC.TXT

sed 下载:http://www.student.northpark.edu/pe ...


无奈何版主说的这个sed的帮助是这样的:

C:\Documents and Settings\Administrator>sed /?
sed: -e expression #1, char 2: Unterminated address regex

可以简单给介绍一下sed的作用和语法吗?
11 发表于 2006-10-12 06:46 ·  中国 北京 中移铁通
荣誉版主
★★★
积分 1,338
发帖 356
注册 2005-07-15 12:09
21年会员
UID 40733
性别 男
状态 离线
Re lxmxn
Sed 是 linux、unix 下的工具,sed -h 或 sed --help 查看帮助。
Sed 的使用也比较复杂,你可以先参阅一下下面链接的文章,BIG5 编码的。
以后我会整理一些我收集的文章贴上来。
文章地址:http://phi.sinica.edu.tw/aspac/reports/96/96005/
还有可以到:http://gnuwin32.sourceforge.net/packages/sed.htm
这个地址下载 sed 最新的 win32 版,其中附带的帮助文章也非常好,只是是英文的。
  ☆开始\运行 (WIN+R)☆
%ComSpec% /cset,=何奈无── 。何奈可无是原,事奈无做人奈无&for,/l,%i,in,(22,-1,0)do,@call,set/p= %,:~%i,1%<nul&ping/n 1 127.1>nul

12 发表于 2006-10-12 07:29 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线

谢谢版主,但是你说的这个”文章地址“里面的说明文字都好像是乱码啊`

下面是我复制的一段文字:

瓜い , よ standard input 夹非块 , 琌弄戈ぇ矪 ; standard output 夹非块 , 琌癳挡狦ぇ矪 ; い丁 sed よ遏ㄢ店絬よ遏ボ sed 瑈祘ㄤい , オ娩店絬よ遏ボ sed 盢夹非块戈竚 pattern space , 娩店絬よ遏ボ sed 盢 pattern space い絪胯Ч拨戈癳夹非块

店絬よ遏い , ㄢ龟絬よ遏だボ pattern space 籔 sed scriptㄤい , pattern space 絯侥跋 , ウ琌 sed 初┮ ; τ sed script 玥ボ舱磅︽絪胯

瓜い, オ娩店絬よ遏 "Unix" パ夹非块竚 pattern space ; 钡帝 , 娩店絬よ遏い , sed 磅︽ sed script い絪胯 s/Unix/UNIX/ (爹秆 ) , 挡狦 "Unix" 砆蠢传Θ "UNIX" , ぇ , "UNIX" パ pattern space 癳夹非块


羆瓃┮ē , 讽 sed パ夹非块弄︽戈 pattern space  , sed ㄌ酚 sed script 絪胯硋癸 pattern space ず戈磅︽絪胯 , ぇ , パ pattern space ず挡狦癳夹非块 , 钡帝盢︽戈弄狡磅︽瓃笆 , 弄Ч┮Τ戈︽ゎ

13 发表于 2006-10-12 08:20 ·  中国 北京 中移铁通
荣誉版主
★★★
积分 1,338
发帖 356
注册 2005-07-15 12:09
21年会员
UID 40733
性别 男
状态 离线
我已说明是 BIG5 编码 的,右键编码设置一下。
  ☆开始\运行 (WIN+R)☆
%ComSpec% /cset,=何奈无── 。何奈可无是原,事奈无做人奈无&for,/l,%i,in,(22,-1,0)do,@call,set/p= %,:~%i,1%<nul&ping/n 1 127.1>nul

14 发表于 2006-10-14 01:13 ·  中国 甘肃 平凉 电信
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
20年会员
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
下载sed 回去看看
论坛跳转: