无忧启动论坛

标题: [求助]-进入winPE后,如何确定 pe 中光盘盘符(定位PE启动的源文件所在的盘符)? [打印本页]

作者: shawell518    时间: 2010-4-18 21:20
标题: [求助]-进入winPE后,如何确定 pe 中光盘盘符(定位PE启动的源文件所在的盘符)?
光盘中的PE启动后,不同的电脑中,盘符不同

如何确定光盘的盘符(定位PE启动的源文件所在的盘符)?

[ 本帖最后由 shawell518 于 2010-4-22 09:17 编辑 ]
作者: shawell518    时间: 2010-4-19 18:16
没人回答
呵呵
作者: 超级坏蛋    时间: 2010-4-19 18:24
%SystemDrive%
作者: shawell518    时间: 2010-4-19 19:00
原帖由 超级坏蛋 于 2010-4-19 18:24 发表
%SystemDrive%



这个是X:盘
不是光盘
作者: sratlf    时间: 2010-4-19 19:26
光盘中的配置文件里用%CurDrv%     就是光驱
作者: 网虫2008    时间: 2010-4-19 19:31
WIN7PE可以通过注册表直接读取 PE源文件所在盘。
如果是XP或03内核的PE,到现在为止一直没有好办法解决。
通用的笨方法就是 在你的PE源文件所在盘建一个极特殊有标志性的文件或文件夹,用PECMD或批处理等程序查找这个“特殊”文件夹或文件以实现对PE源文件所在盘符的定位。

[ 本帖最后由 网虫2008 于 2010-4-19 19:32 编辑 ]
作者: NicTense    时间: 2010-4-19 20:00
如果你是指pecmd的话


envi *=

然后
%cdrom% 一般就是了
作者: 网虫2008    时间: 2010-4-19 20:37
原帖由 NicTense 于 2010-4-19 20:00 发表
如果你是指pecmd的话


envi *=

然后
%cdrom% 一般就是了


我想楼主的意思并不是要找光驱的盘符,,主要是想定位PE启动的源文件所在的盘符吧,

如果是%cdrom%,那有些不确定呀,,%cdrom%只是光驱盘符,如果存在多个光驱再加上U盘量产的光盘,,%cdrom%这否能精确定位呀,,,如果能就太好了。
作者: NicTense    时间: 2010-4-19 22:02
原帖由 网虫2008 于 2010-4-19 20:37 发表


我想楼主的意思并不是要找光驱的盘符,,主要是想定位PE启动的源文件所在的盘符吧,

如果是%cdrom%,那有些不确定呀,,%cdrom%只是光驱盘符,如果存在多个光驱再加上U盘量产的光盘,,%cdrom%这否能精确 ...


还有

%cdrom1%
%cdrom2%
...

具体怎么排序的没仔细研究,有空可以测试下,如果本身有光驱,再量产u盘的虚拟光驱,或者grub4dos的模拟光驱之间的排序

我不确定启动后 如果存在多个光盘,%cdrom% 是否就是pe所在的那个

不过最起码应该可以减小搜索的范围

起码可以不用找硬盘,非量产U盘等


其实用 fsutil 也可以的
作者: sratlf    时间: 2010-4-19 23:16
标题: 回复 #9 NicTense 的帖子
为什么不用%CurDrv%

假设配置文件名是test.ini   PE启动后再LOAD test.ini   

此时test.ini里的%CurDrv%肯定就是当前光驱的盘符   想做什么都可以在test.ini中写出来
作者: NicTense    时间: 2010-4-19 23:18
原帖由 sratlf 于 2010-4-19 23:16 发表
为什么不用%CurDrv%

假设配置文件名是test.ini   PE启动后再LOAD test.ini   

此时test.ini里的%CurDrv%肯定就是当前光驱的盘符   想做什么都可以在test.ini中写出来


因为 %CurDrv% 是不可靠的,这个 load test.ini,只要硬盘上有一个同目录同名的文件存在,就会导致错误定位

这就是很多pe启动后找不到外置的原因
作者: 网虫2008    时间: 2010-4-19 23:23
原帖由 sratlf 于 2010-4-19 23:16 发表
为什么不用%CurDrv%

假设配置文件名是test.ini   PE启动后再LOAD test.ini   

此时test.ini里的%CurDrv%肯定就是当前光驱的盘符   想做什么都可以在test.ini中写出来


启动后再 LOAD TEST.INI,,那首先要先能找到TEST.INI才行,因为启动后,类似PECMD.INI的文件已经在X:盘了,如果TEST.INI 不在 X:盘,直接是LOAD不到了,必需要多一道搜索TEST.INI的手序,如果其他磁盘同目录下也有TEST.INI,还是件麻烦事儿,如果TEST.INI是内置内核中,那%CurDrv%就变为 X:\...盘了。

所以说,PE源文件所在盘最好要有个特殊名称且不被安装程序安装到磁盘或U盘的标识性文件。

如果还担心加载外置或定位盘符不准确,可以象我的PE那样,顺序和逆序两次加入双重条件的搜索并弹出相同文件时的选择提示窗口,,,,,或者更细一些的,不用顺逆两次,只一次搜索,把搜索到的所有同条件盘符实时列出列表并弹出选择窗口。

[ 本帖最后由 网虫2008 于 2010-4-19 23:33 编辑 ]
作者: sratlf    时间: 2010-4-20 00:01
@ NicTense
@ 网虫2008

写成test.ini只是为的好理解   实际使用时肯定会换成特殊文件名来避免重名问题

只是感觉用%CurDrv%是最简单的  扣除重名问题其他应该不会再出大问题

我常用的就是用这种方法再配合SUBJ出Y盘

更新外置很方便  不用在WIM压缩

[ 本帖最后由 sratlf 于 2010-4-20 00:04 编辑 ]
作者: 网虫2008    时间: 2010-4-20 00:17
原帖由 sratlf 于 2010-4-20 00:01 发表
@ NicTense
@ 网虫2008

写成test.ini只是为的好理解   实际使用时肯定会换成特殊文件名来避免重名问题

只是感觉用%CurDrv%是最简单的  扣除重名问题其他应该不会再出大问题

我常 ...


那说到底还不是我在六楼说的方法吗?
作者: sratlf    时间: 2010-4-20 00:19
标题: 回复 #14 网虫2008 的帖子
是一样没错   就是我开始没说明白
作者: shawell518    时间: 2010-4-22 09:14
原帖由 网虫2008 于 2010-4-19 20:37 发表


我想楼主的意思并不是要找光驱的盘符,,主要是想定位PE启动的源文件所在的盘符吧,

如果是%cdrom%,那有些不确定呀,,%cdrom%只是光驱盘符,如果存在多个光驱再加上U盘量产的光盘,,%cdrom%这否能精确 ...



正是这个意思:“想定位PE启动的源文件所在的盘符”
作者: 网虫2008    时间: 2010-4-22 09:47
原帖由 shawell518 于 2010-4-22 09:14 发表



正是这个意思:“想定位PE启动的源文件所在的盘符”


如果是这样,,那目前你只能用我六楼说的笨方法了,,我也曾经另一新帖探讨过这个问题,至今也无其他方法。

另:WIN7PE可以,直接读取相关注册表项就得到了
作者: wxmjyg    时间: 2010-4-22 15:33
如果是pecmd,用regi 命令,读取注册表的 HKLM\SYSTEM\ControlSet001\Control\PEBootRamdiskSourceDrive,键值就是源盘的盘符。
作者: 网虫2008    时间: 2010-4-22 16:16
原帖由 wxmjyg 于 2010-4-22 15:33 发表
如果是pecmd,用regi 命令,读取注册表的 HKLM\SYSTEM\ControlSet001\Control\PEBootRamdiskSourceDrive,键值就是源盘的盘符。


对,,WIN7PE下就是这个键值,,,,很可惜,XP和03的PE中没有,要是启动后也能在键值就映射出这个键值,那加载外置就省了很多麻烦
作者: victor888    时间: 2010-4-22 19:02
通过注册表是可以确定这个盘符的。
如果是USBCDROM,其注册表选项中会有USB字样的。
作者: chiannet    时间: 2010-4-22 19:34
标题: 回复 #9 NicTense 的帖子
我用这个命令(AXPE\setupPE.EXE是启动盘上的一个标志性文件)

FORX !\AXPE\setupPE.EXE,MyIniz,1,LINK %Desktop%\安装PE,%MyIniz%

其中myiniz这个字符串的前三个字母就是启动盘盘符之所在根目录。方法虽笨,但简单易行。

[ 本帖最后由 chiannet 于 2010-4-22 19:37 编辑 ]
作者: NicTense    时间: 2010-4-22 20:24
原帖由 chiannet 于 2010-4-22 19:34 发表
我用这个命令(AXPE\setupPE.EXE是启动盘上的一个标志性文件)

其中myiniz这个字符串的前三个字母就是启动盘盘符之所在根目录。方法虽笨,但简单易行。


这个方法跟6楼的方法道理是一样的,都是全盘搜索指定的文件名,如果在启动盘的前面存在同样目录结构同样文件名,就会定位错误

wpeutil.exe这个文件貌似在pe 1.x下不能运行,如果可以运行问题就很容易解决了

如果是确定用cdrom启动的,其实检测%cdrom%那几个变量,范围缩小了,基本上是不会错误定位的

就是这个方法有局限性,因为还要考虑硬盘版和u盘版
作者: shawell518    时间: 2010-4-23 09:46
到底有没有简单快速可靠的方法呢
作者: 2010nmb    时间: 2010-11-8 08:44
同求,不知道什么方法好,支持一下!
作者: slipper    时间: 2011-3-30 21:47
光盘上放外置程序,一直都没有好的方法来定位启动光盘盘符,请高手解决




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net./) Powered by Discuz! X3.3