无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: haijie1223
打印 上一主题 下一主题

[原创] 自动理顺盘符搜索petools-已开源

    [复制链接]
1#
发表于 2016-11-14 14:06:45 | 显示全部楼层
可以自动理顺同一个硬盘里不同分区的盘符顺序吗?我经常使用电脑店、大白菜等的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盘的后面

点评

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

使用道具 举报

2#
发表于 2016-11-15 00:34:15 | 显示全部楼层
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环境下软件是否正常

点评

多谢反馈,已更新!  详情 回复 发表于 2016-11-15 18:19
回复

使用道具 举报

3#
发表于 2016-11-15 22:11:42 | 显示全部楼层
haijie1223 发表于 2016-11-15 18:19
多谢反馈,已更新!

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

点评

再次更新,欢迎测试!  详情 回复 发表于 2016-11-16 11:14

评分

参与人数 1无忧币 +5 收起 理由
haijie1223 + 5 多谢测试!确实是代码错误,再次感谢!

查看全部评分

回复

使用道具 举报

4#
发表于 2016-11-17 00:53:18 | 显示全部楼层
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首次打开使资源管理器无响应也话有些问题),但程序的执行流程、逻辑思路、细节应稍加改进,以达到效果。

点评

多谢测试!再次更新!  详情 回复 发表于 2016-11-17 15:42
感谢测试,大体知道问题出在哪里了。看来语言再改改。  详情 回复 发表于 2016-11-17 07:53
回复

使用道具 举报

5#
发表于 2016-11-18 00:57:59 | 显示全部楼层
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环境分析:还不太稳定,第一次运行会造成资源管理假死,且需要多次运行后才有效果。

点评

感谢测试,再次更新。 经过测试,确实是我说的那种情况,因为esp和msr没有挂载点,我的程序不能将他们设置成新的盘符,他们所占用的盘符也不能被别的盘设置。目前是将没法挂载的分区直接跳出去,继续设置。后面研究  详情 回复 发表于 2016-11-18 20:28
感谢测试,通过你的反馈,我想情况应该是这样的。 esp,msr 两个分区,软件应该是把他们排到c,d的。然后后面的依次往后排就对了。 但是可能不知什么原因,esp msr删除盘符后,还占用了原来的 l m 的位置,重新  详情 回复 发表于 2016-11-18 07:39
回复

使用道具 举报

6#
发表于 2016-11-19 21:49:15 | 显示全部楼层
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、开源:建议楼主可以把该程序源码公开,一是让大家学习,二是可以让其它懂的人来完善,三是每个人要求和需要实现的功能都不一样,不可能对这个程序的百分百满意,如果开源后,有能力的则可以在楼主的基础上再进行完善和开发,实现更个性化的功能。

点评

感谢测试,我将代码发到一楼,没几行代码,也没什么技术含量,欢迎指正!  详情 回复 发表于 2016-11-19 22:13
回复

使用道具 举报

7#
发表于 2016-11-19 23:01:30 | 显示全部楼层
haijie1223 发表于 2016-11-19 22:13
感谢测试,我将代码发到一楼,没几行代码,也没什么技术含量,欢迎指正!

感谢楼主开源,一百多行代码也不少,我不懂AU3,但是之前就一直想开始学,日常工作、系统封装等很多地方都用的上,又没多少空余时间,就又没去学了,不知道AU3难不难。

点评

不难,几天就可以上手。来我的au3群里泡泡吧。群号在代码里。 代码有个include,其实实际运行代码量要多很多。  详情 回复 发表于 2016-11-19 23:40
回复

使用道具 举报

8#
发表于 2016-11-20 14:05:54 | 显示全部楼层
2012_maxbo 发表于 2016-11-20 11:28
强迫症的我,昨晚百度了一下:注册表修改盘符,然后在进入win10后,把win7的注册表文件system挂载修改 ...

既然可以打开任务管理器,那肯定也可以运行批处理了,你也可以试试另一种方法,就是用diskpart命令来删除和重新指派新的盘符,具体用法请百度或在diskpart中输入help查看。

点评

话说,我曾经就有这个想法,就是懒的动手。 不过,你确定Diskpart能操作光驱和虚拟盘?  详情 回复 发表于 2017-1-26 12:09
已经搞定了,其实就是换一下下面的几个盘符: [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  详情 回复 发表于 2016-11-20 19:50
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-6-2 03:25

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表