对于批处理,我是门外汉。我在无忧看到了如下代码,原来也是这里的大侠给的
这段代码的用处是用来更换XP开机画面的时候来修改BOOT.INI的。我试验了,非常好。
@echo off
if exist boot.new del boot.new
if not exist boot.ini goto :eof
for /f "delims=" %%l in (boot.ini) do (
echo.%%l | find /i "/fastdetect" | find /v /i "/kernel">nul && echo %%l /kernel=kernel.exe||echo %%l
)>>boot.new
attrib -s -h -r boot.ini
copy boot.new boot.ini>nul
attrib +s +h +r boot.ini
但也有不足,对于多系统来说,他会把/fastdetect后面都加上/kernel=kernel.exe,如果下次启动到另外系统就无法启动了。另外,开机画面2000,XP,2003都不同,不能判断系统
不知道是否能用批处理来做到下面的几点?
1.判断是否是XP系统,是,进行后面的操作,否,提出警告,然后退出
2.如果是XP系统,判断该系统安装的哪个分区,然后修改BOOT.INI里面相应的系统
3.在修改的时候,自动添加一项现在系统的启动项目在最后。
我太菜了,说不清楚,给个例子
如BOOT.INI下是这样的
[boot loader]
timeout=5
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Server 2003, Standard 精简版" /fastdetect
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows XP" /fastdetect
我只想在multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows XP" /fastdetect
后面加,请问可以做到吗?
多谢解答
这段代码的用处是用来更换XP开机画面的时候来修改BOOT.INI的。我试验了,非常好。
@echo off
if exist boot.new del boot.new
if not exist boot.ini goto :eof
for /f "delims=" %%l in (boot.ini) do (
echo.%%l | find /i "/fastdetect" | find /v /i "/kernel">nul && echo %%l /kernel=kernel.exe||echo %%l
)>>boot.new
attrib -s -h -r boot.ini
copy boot.new boot.ini>nul
attrib +s +h +r boot.ini
但也有不足,对于多系统来说,他会把/fastdetect后面都加上/kernel=kernel.exe,如果下次启动到另外系统就无法启动了。另外,开机画面2000,XP,2003都不同,不能判断系统
不知道是否能用批处理来做到下面的几点?
1.判断是否是XP系统,是,进行后面的操作,否,提出警告,然后退出
2.如果是XP系统,判断该系统安装的哪个分区,然后修改BOOT.INI里面相应的系统
3.在修改的时候,自动添加一项现在系统的启动项目在最后。
我太菜了,说不清楚,给个例子
如BOOT.INI下是这样的
[boot loader]
timeout=5
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Server 2003, Standard 精简版" /fastdetect
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows XP" /fastdetect
我只想在multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows XP" /fastdetect
后面加,请问可以做到吗?
多谢解答

