无忧启动论坛

标题: 自动理顺盘符搜索petools-已开源 [打印本页]

作者: haijie1223    时间: 2016-11-13 15:28
标题: 自动理顺盘符搜索petools-已开源
本帖最后由 haijie1223 于 2016-11-20 10:37 编辑

感谢 Geeker,kcyou帮忙测试!应两位要求,已开源!程序可能会导致系统引导异常!请在PE下运行!
一、简介:
无耐看不懂批处理,只好自己写了个脚本。
1、自动理顺盘符,B、X、Y、Z这些盘符经常做临时盘使用,所以不参与排序。
2、盘符排序顺序,硬盘盘符,光驱盘符,U盘盘符。

3、理顺盘符后自动搜索各个分区下的petools文件夹并创建快捷方式到开始菜单。


本想添加自动搜索UD区功能,由于还需要调用fbinst,还不如写配置文件来的方便。
写工具的目的就是不想依赖第三方工具,所以程序可独立运行,不必依赖于pecmd或者fbinst,在系统和PE下均可使用。

调用方法:和批处理一样,直接调用运行即可。


二、代码开源:AU3脚本编写

理顺盘符加载petools.7z (1.81 KB, 下载次数: 620)


三、文件:
petools.7z (385.82 KB, 下载次数: 1137)







作者: saiz    时间: 2016-11-13 15:48
pecmd就可以搜尋各分partition並執行指令啦
FORX指令
作者: haijie1223    时间: 2016-11-13 16:06
saiz 发表于 2016-11-13 15:48
pecmd就可以搜尋各分partition並執行指令啦
FORX指令

多谢指点,不会用~
作者: haijie1223    时间: 2016-11-13 21:40
立马更新一次
作者: Geeker    时间: 2016-11-14 14:06
可以自动理顺同一个硬盘里不同分区的盘符顺序吗?我经常使用电脑店、大白菜等的PE,有时进入PE后,C、D、E盘并不能按顺序排列,1.1为E,1.2为D,1.3为C,但是正确的要1.1为C,1.2为D,1.3为E,我用PE里的磁盘理顺工具理顺,也不见有效果,不知道是不是只理顺硬盘、光驱、U盘的盘符顺序,而不理顺同一硬盘下的不同分区顺序,因为我自己会运行一些批处理来处理一些东西,而代码是按照系统盘为C盘,D盘为用户的D盘,U盘为U:\,所有我一般是在DiskGenius里手动指派新的盘符,需求:1、把系统里第一块硬盘里大于20G(确保为系统盘)且靠前面的分区指派为C,该硬盘其它分区按物理位置依次顺序排列,2、U盘指派为U:\,有其它U盘的依次往后排列,V、W、……,3、移动硬盘紧接着系统里的CDE盘的后面
作者: haijie1223    时间: 2016-11-14 14:26
Geeker 发表于 2016-11-14 14:06
可以自动理顺同一个硬盘里不同分区的盘符顺序吗?我经常使用电脑店、大白菜等的PE,有时进入PE后,C、D、E ...

打开系统自带的磁盘管理器,最上面的一块硬盘第一个分区是C,依次往后排序。然后是第二个硬盘。。。然后是光驱,然后是U盘。
你可以试试。试过了什么效果,麻烦跟帖反馈一下。
作者: Geeker    时间: 2016-11-15 00:34
haijie1223 发表于 2016-11-14 14:26
打开系统自带的磁盘管理器,最上面的一块硬盘第一个分区是C,依次往后排序。然后是第二个硬盘。。。然后 ...

现在的PE一般在启动时估计都会理顺一次盘符,一般来说刚进入PE时,盘符顺序都是正确的,比较觉的是使用DiskGenius分区工具快速分区后,自动分配的盘符,经常会不按物理位置顺序排列,而使用PE内置的软件(开始--所有程序--再次理顺磁盘盘符)也无法理顺盘符,必须要在DiskGenius里手动指派新的驱动器号来解决,这样耗时又麻烦;
由于进入PE后盘符顺序一般是正常的,所以为了测试效果我在DiskGenius里手动随机几个不分区为不同的盘符,把物理位置靠前的分区盘符靠后,使用PE内置的软件理顺盘符,多次使用都没有任何的改变,感觉这个软件就是骗人的;使用楼主的petools根本无法运行,不管是电脑店PE还是在大白菜PE,以管理员身份运行也一样的出错;
在Win10X64系统(非PE,Uefi+GPT模式)下打开软件没有任何窗口或提示,以管理员身份运行也一样,且没有理顺盘符。
测试环境:Thinkpad T430,Uefi启动模式,Win8PEX64,电脑里有两块硬盘,一块为GPT分区,一块为MBR分区,PE里cmd中显示的版本Microsoft Windows [版本 6.2.9200];
使用的PE都是在2016年10月下旬从各自官网下载并制作的PE,到现在应该都是最新版的;
由于本人使用Win8PE较多,所以也没去测试在Win8X86、2003X64、2003X86、XP等PE环境下软件是否正常


作者: haijie1223    时间: 2016-11-15 18:19
Geeker 发表于 2016-11-15 00:34
现在的PE一般在启动时估计都会理顺一次盘符,一般来说刚进入PE时,盘符顺序都是正确的,比较觉的是使用Di ...

多谢反馈,已更新!
作者: lsc1117    时间: 2016-11-15 18:52
支持一下,有时间做下测试。
作者: slyneo    时间: 2016-11-15 21:08
这个昨天 才整理好我的PE,没有耐心帮你测试了.
作者: haijie1223    时间: 2016-11-15 21:31
slyneo 发表于 2016-11-15 21:08
这个昨天 才整理好我的PE,没有耐心帮你测试了.

可能原来编译有点问题,更新了
作者: Geeker    时间: 2016-11-15 22:11
haijie1223 发表于 2016-11-15 18:19
多谢反馈,已更新!

刚下载测试了一下,还是会有问题,下面的图片是在电脑点Win8X64PE下的,在Win10X64系统下也是一样的错误信息,也没有理顺盘符;
测试环境跟之前的是一样的。


作者: haijie1223    时间: 2016-11-16 11:14
Geeker 发表于 2016-11-15 22:11
刚下载测试了一下,还是会有问题,下面的图片是在电脑点Win8X64PE下的,在Win10X64系统下也是一样的错误 ...

再次更新,欢迎测试!
作者: Geeker    时间: 2016-11-17 00:53
haijie1223 发表于 2016-11-16 11:14
再次更新,欢迎测试!

在电脑店Win8X64PE下,第一块硬盘调整后的盘符为D、C,把C、D分配给了第一块硬盘,但是同一块硬盘内却没有按位置排列,1.1为D,1.2为C了;
第二块硬盘为MBR分区表的(第一分区为主分区,其它为逻辑分区),调整前按物理位置盘符如下j f k l h g,调整后为j g k l i h;
在win10X64系统下,第一次运行没有任何的反应,且资源管理器窗口无响应,鼠标点不了,进程重启后正常,再次打开程序,没有问题,
第二块硬盘在调整前的盘符顺序n l g h i j,调整后的盘符顺序j i e f g h。
同一硬盘里不同分区并不能按物理顺序来理顺排序,该程序已没有运行错误(Win10首次打开使资源管理器无响应也话有些问题),但程序的执行流程、逻辑思路、细节应稍加改进,以达到效果。
作者: baosheng00    时间: 2016-11-17 00:57
楼主发个不需要搜索petools目录的,需要直接整理盘符就可以
作者: haijie1223    时间: 2016-11-17 07:53
Geeker 发表于 2016-11-17 00:53
在电脑店Win8X64PE下,第一块硬盘调整后的盘符为D、C,把C、D分配给了第一块硬盘,但是同一块硬盘内却没 ...

感谢测试,大体知道问题出在哪里了。看来语言再改改。
作者: saiz    时间: 2016-11-17 13:37
haijie1223 发表于 2016-11-13 16:06
多谢指点,不会用~

可直接執行PECMD 找FORX指令看
以我的指令為例
FORX /S !\outtool\8Driver\SRS\*.inf,SRS,0,DEVI %SRS%
即逆向搜尋所有磁碟分區下\outtool\8Driver\SRS\(含子目錄)的所有INF檔
每找到一個後就設為SRS變數,並執行DEVI %SRS,以載入驅動
作者: haijie1223    时间: 2016-11-17 15:42
Geeker 发表于 2016-11-17 00:53
在电脑店Win8X64PE下,第一块硬盘调整后的盘符为D、C,把C、D分配给了第一块硬盘,但是同一块硬盘内却没 ...

多谢测试!再次更新!
作者: haijie1223    时间: 2016-11-17 15:43
baosheng00 发表于 2016-11-17 00:57
楼主发个不需要搜索petools目录的,需要直接整理盘符就可以

更新了,附件里面两个文件,有一个是你需要的。
作者: haijie1223    时间: 2016-11-17 15:43
saiz 发表于 2016-11-17 13:37
可直接執行PECMD 找FORX指令看
以我的指令為例
FORX /S !\outtool\8Driver\SRS\*.inf,SRS,0,DEVI %SRS% ...

感谢指点!收藏一下!
作者: Geeker    时间: 2016-11-18 00:57
haijie1223 发表于 2016-11-17 15:42
多谢测试!再次更新!

下载测试了一下,结果如下:
Win8X64电脑店PE环境:
理顺前第一块硬盘盘符顺序:i d,第二块硬盘盘符顺序:k j g h f e,U盘盘符:c;
理顺后第一块硬盘盘符顺序:e f,第二块硬盘盘符顺序:g h i j k nul,U盘盘符:n;
PE下运行情况分析:1、在gpt硬盘分区表下,第一块硬盘的esp分区一开始就被分配了l盘符,msr分区被分配了m盘符,petools运行后分配到了k盘符,下一个要分配的盘符理应为l,但l、m都被占用了,所以删除盘符后分配盘符失败,导致k分区后面的盘符未能成功分配,建议:分配盘符前再次检测确认该盘符是否未被分配,直到找到下一个可用盘符;
2、在理顺前,C、D盘符都是有被分配的,而在理顺后直接从字母E开始了,而不是从C开始,建议:第一块硬盘第一分区以C作为盘符并依次往后,各个盘符的指派过程可以间隔1~2S或更久的延时,从DiskGenius的快速分区的过程来看,先新建各分区、格式化各分区、指派盘符给各分区,指派盘符时也是需要一定时间的;

win10X64系统环境:
第二块硬盘理顺前盘符顺序:j i e f g h,
第二块硬盘理顺后盘符顺序:e f g h i j,
在Win10系统下,第一次打开软件,运行后没有任何提示或反应,鼠标会转圈,点击资源管理器窗口任何地方无法点击,在任务管理器中重启资源管理器进程后正常,
再次打开程序,运行正常,但没有理顺盘符,多交运行后,可以理顺盘符;
Win10X64环境分析:还不太稳定,第一次运行会造成资源管理假死,且需要多次运行后才有效果。
作者: haijie1223    时间: 2016-11-18 07:39
Geeker 发表于 2016-11-18 00:57
下载测试了一下,结果如下:
Win8X64电脑店PE环境:
理顺前第一块硬盘盘符顺序:i d,第二块硬盘盘符顺 ...

感谢测试,通过你的反馈,我想情况应该是这样的。

esp,msr 两个分区,软件应该是把他们排到c,d的。然后后面的依次往后排就对了。
但是可能不知什么原因,esp msr删除盘符后,还占用了原来的 l  m 的位置,重新分配c d时失败,
而别的盘分配l m 也失败。应该是如此。

看来我得找个类似的环境测试一下。不然这样没有实际环境的更新,不容易发现问题所在。


再次感谢!
作者: kcyou    时间: 2016-11-18 15:42
本帖最后由 kcyou 于 2016-11-18 15:44 编辑

盘符整理测试如下:
用imdisk创建的虚拟磁盘RAMDISK盘符没有整理。
硬盘CDEF四个分区,光盘G,插入U盘显示为H盘,再查第二个U盘显示为I,整理后无变化。
拔出第二U盘,用IMDISK创建RAMDISK,盘符为I,整理后也无变化,正常。
再拔出U盘H,整理后虚拟盘I无变化,缺H盘符;
再插入U盘,显示为盘符H,虚拟盘符为I,整理后无变化;
再插入第二U盘,则整理后第二U盘不能显示。




作者: kcyou    时间: 2016-11-18 16:07
本帖最后由 kcyou 于 2016-11-18 16:09 编辑

虚拟盘符不整理没事儿,但第二个U盘盘符不显示。
victor888盘符整理orderdrv-2013-06-23正常;
PECMD2012示例里的ORDERUSB.wcs整理也正常;
而DOS时代菜鸟的orderx3.5整理后虚拟磁盘没有了(整理中卸载了所有磁盘)

以上大师的作品代码开源,且经过坛友广泛测试反馈。

而楼主作品代码是加密的,不知什么意思???


作者: haijie1223    时间: 2016-11-18 17:40
kcyou 发表于 2016-11-18 15:42
盘符整理测试如下:
用imdisk创建的虚拟磁盘RAMDISK盘符没有整理。
硬盘CDEF四个分区,光盘G,插入U盘显 ...

感谢测试,只整理本地磁盘,虚拟磁盘应该是不参与操作。

作者: haijie1223    时间: 2016-11-18 17:41
kcyou 发表于 2016-11-18 16:07
虚拟盘符不整理没事儿,但第二个U盘盘符不显示。
victor888盘符整理orderdrv-2013-06-23正常;
PECMD2012 ...

弱弱的问一句,不开源是不是会得罪人啊
作者: slyneo    时间: 2016-11-18 19:48
等楼主的这个成熟了再下载.辛苦了.
作者: haijie1223    时间: 2016-11-18 20:24
slyneo 发表于 2016-11-18 19:48
等楼主的这个成熟了再下载.辛苦了.

成熟了直接开源了~
作者: haijie1223    时间: 2016-11-18 20:28
Geeker 发表于 2016-11-18 00:57
下载测试了一下,结果如下:
Win8X64电脑店PE环境:
理顺前第一块硬盘盘符顺序:i d,第二块硬盘盘符顺 ...

感谢测试,再次更新。
经过测试,确实是我说的那种情况,因为esp和msr没有挂载点,我的程序不能将他们设置成新的盘符,他们所占用的盘符也不能被别的盘设置。目前是将没法挂载的分区直接跳出去,继续设置。后面研究一下没有挂载点的分区如何设置。
作者: 201287zr    时间: 2016-11-19 16:44
支持老大经常更新!
作者: Geeker    时间: 2016-11-19 21:49
haijie1223 发表于 2016-11-18 20:28
感谢测试,再次更新。
经过测试,确实是我说的那种情况,因为esp和msr没有挂载点,我的程序不能将他们设 ...

再次测试了一下,这次这是比较不错的,这个软件会加入到我的U盘工具中(我的工具\磁盘光盘\),后续有更新和完善及时公布;
本次测试结果如下:
电脑店Win8X64PE,UEFI启动:
未理顺前第一块硬盘盘符:k j,理顺后盘符为:c d
未理顺前第二块硬盘盘符:e d f g i c
理顺后的第二块硬盘盘符:e f g h i j
理顺前U盘盘符:u
理顺后U盘盘符:n
PE环境下运行结果分析:运行结果正常,可以实现分区盘符按硬盘物理位置排列;

win10X64系统环境:
理顺前第二块硬盘盘符:l f h e i j
第1次打开软件,还是没有任何反应,且资源管理器窗口鼠标无法点击和上下滚动,该窗口失去焦点,在任务栏右键选关闭也关闭不了窗口,但用Win+E打开新的文件夹窗口可以正常操作,但之前的窗口还是不行,只能任务管理器中重启资源管理器进程;
第2次运行后,第二块硬盘盘符为:nul f g e i j
第3次运行后,第二块硬盘盘符为:e f g h i j
Win10X64环境分析:在Win10系统下运行不太稳定,但多次运行后可以实现理顺盘符的效果,可以再完善;

建议:
1、现在最新的大部分PE下,进入PE系统后U盘的盘符默认都是分配U,这是因为在PE经常需要访问U盘中的内容,每次都是固定的U盘符,会让使用者更方便,建议第一个U盘分配U作为盘符,其它U盘依次往后(当然这只是一个完善性的建议,实用性并不是很大);
2、开源:建议楼主可以把该程序源码公开,一是让大家学习,二是可以让其它懂的人来完善,三是每个人要求和需要实现的功能都不一样,不可能对这个程序的百分百满意,如果开源后,有能力的则可以在楼主的基础上再进行完善和开发,实现更个性化的功能。
作者: haijie1223    时间: 2016-11-19 22:13
Geeker 发表于 2016-11-19 21:49
再次测试了一下,这次这是比较不错的,这个软件会加入到我的U盘工具中(我的工具\磁盘光盘\),后续有更 ...

感谢测试,我将代码发到一楼,没几行代码,也没什么技术含量,欢迎指正!
作者: Geeker    时间: 2016-11-19 23:01
haijie1223 发表于 2016-11-19 22:13
感谢测试,我将代码发到一楼,没几行代码,也没什么技术含量,欢迎指正!

感谢楼主开源,一百多行代码也不少,我不懂AU3,但是之前就一直想开始学,日常工作、系统封装等很多地方都用的上,又没多少空余时间,就又没去学了,不知道AU3难不难。
作者: haijie1223    时间: 2016-11-19 23:40
Geeker 发表于 2016-11-19 23:01
感谢楼主开源,一百多行代码也不少,我不懂AU3,但是之前就一直想开始学,日常工作、系统封装等很多地方 ...

不难,几天就可以上手。来我的au3群里泡泡吧。群号在代码里。
代码有个include,其实实际运行代码量要多很多。
作者: 2012_maxbo    时间: 2016-11-20 00:10
手贱不小心在实机上点了petool.exe,系统崩溃了,重启进不了桌面了,怎么办?
我是双系统,c盘WIN10,加一个VHD的win7,在win7下点的,现在进入桌面黑屏,可进入任务管理器,看到VHD的盘符是最后一个F,怎么弄啊???
重启还有记忆的啊!!!
作者: haijie1223    时间: 2016-11-20 07:50
2012_maxbo 发表于 2016-11-20 00:10
手贱不小心在实机上点了petool.exe,系统崩溃了,重启进不了桌面了,怎么办?
我是双系统,c盘WIN10,加一 ...

进PE,打开efi分区,修改引导。至于改成哪个区,你要多试验几次了。但理论上应该是第一个硬盘的第一个区,或第二个硬盘的第一个区。也就是C或者是C+第一个硬盘分区个数之后的那个分区。
我当初有在真机测试过,因为是一个硬盘,一个系统。所以不会乱,没考虑到你这种情况。
一楼有代码,可以修改一下,禁止正常系统下运行。
作者: 2012_maxbo    时间: 2016-11-20 11:28
本帖最后由 2012_maxbo 于 2016-11-20 11:30 编辑
haijie1223 发表于 2016-11-20 07:50
进PE,打开efi分区,修改引导。至于改成哪个区,你要多试验几次了。但理论上应该是第一个硬盘的第一个区 ...


强迫症的我,昨晚百度了一下:注册表修改盘符,然后在进入win10后,把win7的注册表文件system挂载修改了,修改回原来的盘符挂载顺序,就没问题了,还是谢谢楼主了,嗯,还是禁止实机运行比较好,可能导致引导盘盘符错误而进不了桌面。
作者: Geeker    时间: 2016-11-20 14:05
2012_maxbo 发表于 2016-11-20 11:28
强迫症的我,昨晚百度了一下:注册表修改盘符,然后在进入win10后,把win7的注册表文件system挂载修改 ...

既然可以打开任务管理器,那肯定也可以运行批处理了,你也可以试试另一种方法,就是用diskpart命令来删除和重新指派新的盘符,具体用法请百度或在diskpart中输入help查看。
作者: 2012_maxbo    时间: 2016-11-20 19:50
本帖最后由 2012_maxbo 于 2016-11-20 19:53 编辑
Geeker 发表于 2016-11-20 14:05
既然可以打开任务管理器,那肯定也可以运行批处理了,你也可以试试另一种方法,就是用diskpart命令来删除 ...


已经搞定了,其实就是换一下下面的几个盘符:
[HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices]
"\\DosDevices\\C:"=hex:ca,9c,bb,be,00,00,10,00,00,00,00,00
"\\DosDevices\\D:"=hex:44,4d,49,4f,3a,49,44,3a,52,60,2d,66,4d,77,ce,4c,8a,10,\
  5a,e0,9c,a4,2c,00
"\\DosDevices\\E:"=hex:44,4d,49,4f,3a,49,44,3a,0d,a3,95,b0,e0,12,24,4d,9d,e9,\
  99,71,04,83,fd,8a
"\\DosDevices\\F:"=hex:44,4d,49,4f,3a,49,44,3a,33,3d,30,bb,0c,05,67,4d,bd,63,\
  f7,56,e7,d0,ed,b4
你说的方法还不会,但应该没问题,是可以在任务管理器里面的运行中运行程序的,不想再折腾了

作者: slyneo    时间: 2017-1-25 20:13
楼楼 这是最完美版本了吗?
作者: andos    时间: 2017-1-26 15:23
如果不需要"搜索petools" 是否把从第89行往后的删去就是了?


作者: ai20110304    时间: 2019-5-5 23:38
好东西。谢谢分享
作者: ghsys90    时间: 2020-2-19 22:53
试了18楼的方案,没有效果,32位win7
作者: wwwfufei    时间: 2021-1-11 08:29
下载试试
作者: 创新科技2015    时间: 2022-2-11 14:33
赞一个!
作者: chshrm    时间: 2022-2-13 23:07
非常给力,测试过了!两块硬盘,全部理顺,关键还不会把我指定的ESP盘的盘符改了!也不会把我的D盘当C盘理了!这是我用过最顺手的了!
作者: boaz199    时间: 2022-2-13 23:12
顶,谢谢楼主的劳动和分享。
作者: slyneo    时间: 2022-7-21 22:58
V大的最新版本的理顺盘符怎么搜不到?
作者: alertzh    时间: 2022-12-15 15:45
很给力
作者: xdsh001    时间: 2022-12-15 15:59
谢谢分享。
作者: 骑UFO的佛    时间: 2022-12-19 13:26
整理盘符完毕就可以了,不用查找PETOOLS文件夹.
作者: huang1987    时间: 2023-11-27 19:24
谢谢分享
作者: yyy6366164    时间: 2023-12-28 18:00
6666666666666666666666
作者: 17677537226    时间: 2024-6-24 22:21
支持支持




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