Board logo

标题: 如何批处理实现用户输入内容替换boot指定位置的内容 [打印本页]

作者: xingsys     时间: 2007-2-11 08:35    标题: 如何批处理实现用户输入内容替换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 ]
作者: slore     时间: 2007-2-11 08:41
@echo off
set /p dosname=请输入名字
echo c:\grldr=%dosname%>>c:\boot.ini
type c:\boot.ini

pause>nul
作者: xingsys     时间: 2007-2-11 09:13
谢谢,slore指教,看来我差得太多,多向你学习了,不过这只是将用户输入的写入了boot.ini文件 ,如果我是要将c:\grldr=111
将这个111替换为用户输入的,应该怎么办呢
作者: slore     时间: 2007-2-11 09:27
你没试下代码?
作者: xingsys     时间: 2007-2-12 02:05
可能是我上面说得不太清楚,我的意思是用输入的替换c:\grldr=xxx 中的xxx,但位置不能变

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

这样子的话是将c:\grldr=%dosname% 直接加到了boot.ini的最后,而不是在原位置替换,不知怎么办呢
作者: slore     时间: 2007-2-12 02:25
>>表示追加.

你要只修改那里,需要把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 ]
作者: qingfushuan     时间: 2007-2-12 02:31    标题: 好像得先去掉boot.ini的属性呢

好像得先去掉boot.ini的属性呢
作者: slore     时间: 2007-2-12 02:38
我的是ASH属性可以改呀~
貌似不R(只读)就可以了