中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-03 11:59
48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » [讨论]输入内容并替代指定行的内容
可打印版本  898 / 8
第1楼 scriptor 发表于 2007-02-24 12:03
银牌会员 发帖 555 积分 1,187
[讨论]输入内容并替代指定行的内容

要使文件1.txt 的原始内容
32
dd
df
扫荡非法拉客

中的第二行为(引号中的内容)
"已经替换"

而其他行的内容和信息不改变。

实现这个功能的bat怎么写?

注意:每次运行这个bat, 就把第二行的信息替换为不同的新的内容。


在进一步,如果是将这个bat本身的第二行替换呢?
并且这个bat还要能正确运行
请问又该怎么写这个bat?“

期待回复
十分感谢各位路过的和回复问题的大虾们!!
谢谢了。

[ Last edited by scriptor on 2007-2-23 at 11:04 PM ]
第2楼 slore 发表于 2007-02-24 12:23
铂金会员 发帖 2,478 积分 5,212
用2个for命令
第一个for打开文本,把第一行输入到>TMP.txt然后goto出这个for

for .... %%i >TMP.txt goto Sec


:Sec
echo 已经替换>>TMP
for skip=2.....%%i>>TMP.txt

最后用TMP.txt覆盖1.txt
第3楼 scriptor 发表于 2007-02-24 12:28
银牌会员 发帖 555 积分 1,187
先谢谢你作为第一个回复者

但是你的做法太复杂了
呵呵:〉。。。

谢谢!
第4楼 vkill 发表于 2007-02-24 13:21
金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽
set "var=你要替换的内容"
ssed -i0 "2c\%var%" life
第5楼 scriptor 发表于 2007-02-24 13:23
银牌会员 发帖 555 积分 1,187
不要用除了cmd.exe里面的命令之外的工具

谢谢!

就用 for set find(str)等等.
第6楼 slore 发表于 2007-02-24 14:18
铂金会员 发帖 2,478 积分 5,212
复杂?输出第一句,输出你要的话,跳过前2句把后面的全输出....这么简单。。。
第7楼 amao 发表于 2007-02-24 14:46
中级用户 发帖 152 积分 316
用自带的说复杂,用第三方工具来解决又不给,现在的人真难伺候。

记得“无奈何”版主说过,用合适的工具做它最擅长的事……唉……
第8楼 zh159 发表于 2007-02-24 15:09
金牌会员 发帖 1,467 积分 3,687
本想写个替换行的,看了对 2、4 楼的评价,难伺候......
第9楼 lxmxn 发表于 2007-02-25 11:17
版主 发帖 4,938 积分 11,386

  提示一下思路吧:先用for+findstr /n .*来分析文件,然后用if判断行号,再根据行号进行替换。
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023