Board logo

标题: [讨论]输入内容并替代指定行的内容 [打印本页]

作者: scriptor     时间: 2007-2-24 12:03    标题: [讨论]输入内容并替代指定行的内容


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

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

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

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

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


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

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

[ Last edited by scriptor on 2007-2-23 at 11:04 PM ]
作者: slore     时间: 2007-2-24 12:23
用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
作者: scriptor     时间: 2007-2-24 12:28
先谢谢你作为第一个回复者

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

谢谢!
作者: vkill     时间: 2007-2-24 13:21
set "var=你要替换的内容"
ssed -i0 "2c\%var%" life
作者: scriptor     时间: 2007-2-24 13:23
不要用除了cmd.exe里面的命令之外的工具

谢谢!

就用 for set find(str)等等.
作者: slore     时间: 2007-2-24 14:18
复杂?输出第一句,输出你要的话,跳过前2句把后面的全输出....这么简单。。。
作者: amao     时间: 2007-2-24 14:46
用自带的说复杂,用第三方工具来解决又不给,现在的人真难伺候。

记得“无奈何”版主说过,用合适的工具做它最擅长的事……唉……
作者: zh159     时间: 2007-2-24 15:09
本想写个替换行的,看了对 2、4 楼的评价,难伺候......

作者: lxmxn     时间: 2007-2-25 11:17

  提示一下思路吧:先用for+findstr /n .*来分析文件,然后用if判断行号,再根据行号进行替换。