|
一、问题的提出
此前电脑c:盘上已经被安装了老版本的老毛桃PE.当用光盘启动更新版本的pe时,居然调用了硬盘上老版本的外置程序。
二、分析原因
在 WINPE.ISO 的 PECMD.INI 中调用外置程序的 语句是 "LOAD \外置程序\WINPE.INI",解释为遍历所有分区搜索 根目录的 "外置程序\WINPE.INI" 而C:盘正好处在磁盘分区列表的前面,PE甚至会调用多个分布在各个分区上的 "外置程序\WINPE.INI" ,造成启动变慢、桌面频繁刷新等。
三、问题解决
1.修改 光盘 \外置程序\WINPE.INI 内容
目的是,在winpe.ini 文件被调用执行以后,生成在x:盘系统文件夹中的 wzcx_ok.txt 文件,用来做以标记。说明外置程序已经被装载过了。
1)添加第一行内容如下(将外置程序所在分区号存入变量 wzcx_path):
envi wzcx_path=%CurDrv%
2)添加最后一行内容如下(将外置程序所在分区号存入x:盘系统文件夹中的 wzcx_ok.txt 文件)
exec !=cmd.exe /c echo %wzcx_path%>%SystemRoot%\wzcx_ok.txt
2.修改 winpe.iso 中的 pecmd.ini
找到 语句 "LOAD \外置程序\WINPE.INI",将其替换为如下内容:
-----
init c
IFEX %cdrom1%\外置程序\winpe.ini,load %cdrom1%\外置程序\winpe.ini
ifex %SystemRoot%\wzcx_ok.txt, ,!IFEX %cdrom2%\外置程序\winpe.ini,load %cdrom2%\外置程序\winpe.ini
ifex %SystemRoot%\wzcx_ok.txt, ,!IFEX %cdrom3%\外置程序\winpe.ini,load %cdrom3%\外置程序\winpe.ini
ifex %SystemRoot%\wzcx_ok.txt, ,!IFEX %cdrom4%\外置程序\winpe.ini,load %cdrom4%\外置程序\winpe.ini
ifex %SystemRoot%\wzcx_ok.txt, ,!IFEX %cdrom5%\外置程序\winpe.ini,load %cdrom5%\外置程序\winpe.ini
ifex %SystemRoot%\wzcx_ok.txt, ,!load \外置程序\winpe.ini
-----目的是将光驱分区号载入内存变量,查找第一光驱是否有\外置程序\winpe.ini,如果有,就调用之。然后通过判断PE系统文件夹中的 wzcx_ok.txt 是否存在来判断外置程序是否已经被载入,如果没有,就逐一查找其余光盘的 "\外置程序\winpe.ini" 文件,如果发现有 WINPE.INI 就调用之。最后如果 PE系统文件夹中还是没有 WZCX_OK.TXT 文件,再遍历所有分区搜索 根目录的 "外置程序\WINPE.INI" 并LOAD之。
这里,我选择光驱个数为5个,应该够用了吧。如果,PECMD.EXE 有循环和数字计算功能,就不用这么麻烦了。
[ 本帖最后由 dos时代菜鸟 于 2007-11-23 08:05 PM 编辑 ] |
|