中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何批处理实现用户输入内容替换boot指定位置的内容
作者:
标题: 如何批处理实现用户输入内容替换boot指定位置的内容 上一主题 | 下一主题
xingsys
初级用户





积分 80
发帖 31
注册 2005-11-28
状态 离线
『楼 主』:  如何批处理实现用户输入内容替换boot指定位置的内容

[boot loader]
timeout=3
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows 2003" /noexecute=optout /fastdetect
multi(0)disk(0)rdisk(1)partition(1)\WINNT="Windows 2K_SVR" /noexecute=optout /fastdetect
C:\grldr=xxxx
c:\grldr=其它内容
在这个boot.ini文件 ,我想做一个批处理,把用户自己的输入替换xxxx,而位置不能变动,应该怎么办呢,比如运行批处理后,等待用户输入abc,然后将用户输入的abc,替换到boot.ini中 ,就成了
----------
c:\grldr=abc
c:\grldr=其它内容
这其中c:\grldr=abc的位置不能变,因为后面有其它的内容,具体怎么办呢
请高手指教




[ Last edited by xingsys on 2007-2-12 at 02:01 AM ]

2007-2-11 08:35
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 2 楼』:  

@echo off
set /p dosname=请输入名字
echo c:\grldr=%dosname%>>c:\boot.ini
type c:\boot.ini

pause>nul

2007-2-11 08:41
查看资料  发短消息 网志   编辑帖子  回复  引用回复
xingsys
初级用户





积分 80
发帖 31
注册 2005-11-28
状态 离线
『第 3 楼』:  

谢谢,slore指教,看来我差得太多,多向你学习了,不过这只是将用户输入的写入了boot.ini文件 ,如果我是要将c:\grldr=111
将这个111替换为用户输入的,应该怎么办呢

2007-2-11 09:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 4 楼』:  

你没试下代码?

2007-2-11 09:27
查看资料  发短消息 网志   编辑帖子  回复  引用回复
xingsys
初级用户





积分 80
发帖 31
注册 2005-11-28
状态 离线
『第 5 楼』:  

可能是我上面说得不太清楚,我的意思是用输入的替换c:\grldr=xxx 中的xxx,但位置不能变

set /p dosname=请输入名字
echo c:\grldr=%dosname%>>c:\boot.ini

这样子的话是将c:\grldr=%dosname% 直接加到了boot.ini的最后,而不是在原位置替换,不知怎么办呢

2007-2-12 02:05
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 6 楼』:  

>>表示追加.

你要只修改那里,需要把boot.ini全读出来,然后到最后一句了把这个加上^

P里面怎么把字符累加我还不清楚.

如果你boot.ini前面的内容都一样的话可以这样!

@echo off
echo [boot loader]>c:\boot.ini
echo timeout=2>>c:\boot.ini
echo default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS>>c:\boot.ini
echo [operating systems]>>c:\boot.ini
echo multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows 2003" /noexecute=optout /fastdetect>>c:\boot.ini
echo multi(0)disk(0)rdisk(1)partition(1)\WINNT="Windows 2K_SVR" /noexecute=optout /fastdetect>>c:\boot.ini
::把前面的重写进去

set /p dosname=请输入名字:
echo c:\grldr=%dosname%>>c:\boot.ini
type c:\boot.ini

pause>nul

[ Last edited by slore on 2007-2-11 at 02:40 PM ]

2007-2-12 02:25
查看资料  发短消息 网志   编辑帖子  回复  引用回复
qingfushuan
高级用户





积分 502
发帖 327
注册 2006-12-30
状态 离线
『第 7 楼』:  好像得先去掉boot.ini的属性呢

好像得先去掉boot.ini的属性呢

2007-2-12 02:31
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 8 楼』:  

我的是ASH属性可以改呀~
貌似不R(只读)就可以了

2007-2-12 02:38
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: