中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-03 08:57
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何批处理实现用户输入内容替换boot指定位置的内容 查看 935 回复 7
楼 主 如何批处理实现用户输入内容替换boot指定位置的内容 发表于 2007-02-11 08:35 ·  中国 四川 成都 电信
初级用户
积分 80
发帖 31
注册 2005-11-28 00:29
20年会员
UID 46066
状态 离线

timeout=3
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS

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 ]
2 发表于 2007-02-11 08:41 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
@echo off
set /p dosname=请输入名字
echo c:\grldr=%dosname%>>c:\boot.ini
type c:\boot.ini

pause>nul
3 发表于 2007-02-11 09:13 ·  中国 四川 成都 电信
初级用户
积分 80
发帖 31
注册 2005-11-28 00:29
20年会员
UID 46066
状态 离线
谢谢,slore指教,看来我差得太多,多向你学习了,不过这只是将用户输入的写入了boot.ini文件 ,如果我是要将c:\grldr=111
将这个111替换为用户输入的,应该怎么办呢
4 发表于 2007-02-11 09:27 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
你没试下代码?
5 发表于 2007-02-12 02:05 ·  中国 四川 成都 电信
初级用户
积分 80
发帖 31
注册 2005-11-28 00:29
20年会员
UID 46066
状态 离线
可能是我上面说得不太清楚,我的意思是用输入的替换c:\grldr=xxx 中的xxx,但位置不能变

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

这样子的话是将c:\grldr=%dosname% 直接加到了boot.ini的最后,而不是在原位置替换,不知怎么办呢
6 发表于 2007-02-12 02:25 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
>>表示追加.

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

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

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

@echo off
echo >c:\boot.ini
echo timeout=2>>c:\boot.ini
echo default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS>>c:\boot.ini
echo >>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 ]
7 好像得先去掉boot.ini的属性呢 发表于 2007-02-12 02:31 ·  中国 四川 绵阳 电信
高级用户
★★★
积分 502
发帖 327
注册 2006-12-30 06:01
19年会员
UID 74981
性别 男
状态 离线
好像得先去掉boot.ini的属性呢
8 发表于 2007-02-12 02:38 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
我的是ASH属性可以改呀~
貌似不R(只读)就可以了
论坛跳转: