无忧启动论坛

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

[原创] DP盘符整理 1.0.7.1

    [复制链接]
跳转到指定楼层
#
发表于 2021-3-24 21:46:55 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 nttwqz 于 2023-7-19 23:24 编辑



本工具基于dpinfo开发,不需要任何三方工具,仅支持Win7以上简体中文系统。

仅在对其它盘符整理工具均不满意的情况下才推荐使用本工具,或者不太注重效率的场合,因为diskpart首次初始化缓慢众所周知。

主要按照diskpart磁盘和分区顺序整理,顺序或者ACT/ESP倒序整理,倒序时ACT/ESP在最后,DVD等在其前。由于本工具支持大量开关设置,还会检测所有用户文件夹和已安装程序路径所在盘符,检测diskpart无法识别的盘符等,这些盘符可能会自动加入盘符白名单,这些都会影响整理顺序。

支持检测所有用户文件夹和已安装程序路径功能,仅正常系统检测,当检测到有位于非C盘路径时,自动将盘符加入盘符白名单。用户文件夹路径检测支持符号链接追踪,就是如果使用了mklink转移了桌面等到非C盘,注册表路径不变时,那么这个转移后的盘符也会加入盘符白名单。

支持检测识别非diskpart盘符功能,非diskpart盘符就是所有存在的盘符减去list vol获取的盘符,无法被diskpart操作,已知空读卡器有时会出现这种情况、还有内存盘、挂载的虚拟机磁盘等。为避免误操作,此类盘符的整理操作已被严格限制,当检测到此类盘符,需要使用mountvol操作,不存在mountvol时,自动加入盘符白名单。当mountvol获取的对应卷名称存在时,且fsutil获取的类型为“可移动驱动器”或者大小为0的非diskpart盘符,才参与整理,否则一律自动加入白名单。当检测到非diskpart盘符存在时,当fsutil可用时,自动使用fsutil获取设备类型、文件系统、卷标,方便识别。当fsutil不可用时,仅显示盘符。以其它开头的行就是此类设备了。

支持问题反馈自动打包,使用 /bug 参数调用,省去复制粘贴运行再打包繁琐步骤,自动执行并打包为压缩文件,只需将该文件上传即可。优先使用开源软件7-Zip打包,仅限默认安装路径,当失败时再使用makecab打包,若再失败,则提示手动打包。为了便于上传,格式都是7z。


【开关设置】详见脚本开头注释,请根据个人需要自行修改。

::所有参数不分大小写,功能开启 Y
::自动模式:使用 /S 参数调用,自动开始,不显示磁盘信息列表,完成后自动退出。

::检查脚本是否已退出:在桌面生成 整理盘符中.txt,完成后删除,仅自动模式有效,通过检查桌面是否有此文件来判断是否整理完成。
  1. set exitcheck=
复制代码

::盘符白名单:不整理和不使用的盘符列表,可能会影响盘符顺序,当前系统盘默认不整理,空格分隔,例如,U V Y Z
  1. set ltrwhitelist=
复制代码

::分区ID白名单:无盘符时不分配盘符的分区ID列表,主要用于非标准分区,空格分隔,可在此处添加不想被分配盘符的分区ID类型。
::已知:EF=Ventory的ESP分区
  1. set idwhitelist=EF
复制代码

::磁盘名称白名单:这些磁盘将不参与整理,维持其原样不变,英文逗号分隔,需Win7 SP1及以上操作系统。
  1. set disknamewhitelist=
复制代码

::分区无盘符时分配盘符的文件系统列表关键字:含有关键字且满足分区属性条件才分配盘符,空格分隔,例如,关键字FAT包含FAT、FAT32、exFAT
  1. set fslist=FAT NTFS REFS UDF CDFS
复制代码

::排除无盘符分区,仅处理有盘符的分区,默认:禁用。注意:此开关优先级高于挂载ACT/ESP分区开关mountactesp,启用后即使mountactesp启用,也不会为无盘符的ACT/ESP分区分配盘符。
  1. set excludenoltr=
复制代码

::排除无盘符分区生效范围设置,默认:无(全局生效)。值:C/X/无,系统盘符和值相同时生效,没有值或者变量不存在时全局生效。
  1. set excludenoltr_os=
复制代码

::排除非diskpart盘符,仅处理diskpart能识别的设备盘符,默认:禁用。启用后非diskpart盘符将全部自动加入盘符白名单。
  1. set excludenotdpltr=
复制代码

::排除非diskpart盘符生效范围设置,默认:无(全局生效)。值:C/X/无,系统盘符和值相同时生效,没有值或者变量不存在时全局生效。
  1. set excludenotdpltr_os=
复制代码

::挂载ACT/ESP分区,默认:启用。注意:此开关优先级低于排除无盘符分区开关excludenoltr,excludenoltr启用后此开关失效。
  1. set mountactesp=Y
复制代码

::挂载ACT/ESP分区生效范围设置,默认:X。值:C/X/无,系统盘符和值相同时生效,没有值或者变量不存在时全局生效。
  1. set mountactesp_os=X
复制代码

::ACT/ESP分区分配顺序模式,默认:Y,正序模式。启用:正序模式,禁用:倒序模式,正常系统下强制为倒序模式。启用后无论是否ACT/ESP分区,均按从C到Z顺序排列。禁用后,ACT/ESP分区将按磁盘和分区的倒序从Z到C分配。
  1. set czmode=Y
复制代码

::ACT/ESP倒序分配模式排除USB设备,默认:启用。启用后USB设备的ACT/ESP仍然正序排列,一般用于保证U盘的启动分区和数据分区盘符相邻。
  1. set czmodedisabled_excludeusb=Y
复制代码

::Windows所在磁盘前置,默认:启用。只有一个Windows分区或固态硬盘时有效,未找到Windows分区时,检测磁盘类型是NVMe或名称中有SSD,一般用于SSD+HDD时,SSD磁盘前置。
  1. set windiskfirst=Y
复制代码

::为磁盘无介质无盘符的卷分配盘符,默认:禁用。常见于空读卡器,正常系统此类驱动器一般隐藏,优盘右键弹出未物理拔出,又手动删除其盘符,也是这种情况。
  1. set disknomedia_noltr_assign=
复制代码

::问题反馈:请在保持连接设备不变的情况下用 /bug 参数调用脚本,然后按照提示操作!


实测在添加到PE,进入桌面后依然需要等待5、6、7、8、9、10秒,虽然很多时候也不那么急,但总的来说,首次运行依然较慢,各位用的时候要有点心理准备。

WinPE启动项添加位置参考:HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinPE\OC\Microsoft-WinPE-HTA
此位置可以解决diskpart脚本开机自启需要1分钟以上手动运行只需要几秒的问题。
此位置在欢迎屏幕期间执行,并且是阻塞执行,启动时有黑框一闪而过,只有执行完才能进入桌面。建议添加其它批处理或者pecmd配置文件,间接调用减少等待。

有人反馈提权命令可能会导致死循环,但是个人使用多年从未遇到,已限制仅在系统盘是C时运行,若出错可删除::自动请求以管理员权限运行下面一行。

下载
DP盘符整理_1.0.7.1.7z (24.05 KB, 下载次数: 649)

其它地址
https://sourceforge.net/projects/dpltrsort.dpinfo.p/


评分

参与人数 12无忧币 +56 收起 理由
nfans + 5 很给力!
jhko1234 + 5 好用
77766 + 1
2012andyle113 + 5 很给力!
smss + 5 很给力!
chshrm + 5 整一下呗
Anson4 + 5 赞一个!
1024782496 + 5 很给力!
我是小青蛙 + 5 赞一个!
dos时代菜鸟 + 5 赞一个!
wuxin9712 + 5
freesoft00 + 5

查看全部评分

来自 188#
 楼主| 发表于 2023-4-18 22:12:06 | 只看该作者
DP盘符整理 1.0.7.1 更新日志

解决一个已知问题
回复

使用道具 举报

187#
发表于 2024-1-23 19:05:35 | 只看该作者
nttwqz 发表于 2024-1-13 17:22
有开关可以自己修改

::挂载ACT/ESP分区,默认:启用。注意:此开关优先级低于排除无盘符分区开关exclu ...

谢谢大佬回复。
回复

使用道具 举报

186#
 楼主| 发表于 2024-1-13 17:22:15 来自手机 | 只看该作者
lhglmy 发表于 2024-1-13 16:40
加个自定义多少容量以下的盘符不分配就好了,win10系统下,pe的efi分区总是被显示出来,好麻烦

有开关可以自己修改

::挂载ACT/ESP分区,默认:启用。注意:此开关优先级低于排除无盘符分区开关excludenoltr,excludenoltr启用后此开关失效。
代码:

set mountactesp=Y

点评

谢谢大佬回复。  详情 回复 发表于 2024-1-23 19:05
回复

使用道具 举报

185#
发表于 2024-1-13 16:40:18 | 只看该作者
加个自定义多少容量以下的盘符不分配就好了,win10系统下,pe的efi分区总是被显示出来,好麻烦

点评

有开关可以自己修改 ::挂载ACT/ESP分区,默认:启用。注意:此开关优先级低于排除无盘符分区开关excludenoltr,excludenoltr启用后此开关失效。 代码: set mountactesp=Y  详情 回复 发表于 2024-1-13 17:22
回复

使用道具 举报

184#
发表于 2024-1-9 20:26:54 | 只看该作者
谢谢分享
回复

使用道具 举报

183#
发表于 2024-1-8 23:22:23 | 只看该作者
感谢楼主的分享
回复

使用道具 举报

182#
发表于 2023-12-16 15:54:24 | 只看该作者
收藏 谢谢楼主
回复

使用道具 举报

181#
发表于 2023-12-15 13:39:48 | 只看该作者
只能回复牛掰,下无正文
回复

使用道具 举报

180#
发表于 2023-10-10 10:00:27 | 只看该作者
good
回复

使用道具 举报

179#
发表于 2023-10-9 23:28:01 来自手机 | 只看该作者
谢谢分享!
回复

使用道具 举报

178#
发表于 2023-10-9 15:15:49 | 只看该作者
感谢分享,很好用
回复

使用道具 举报

177#
发表于 2023-9-29 15:03:13 | 只看该作者
感谢分享啊~~
回复

使用道具 举报

176#
发表于 2023-9-29 10:03:38 | 只看该作者
谢谢分享
回复

使用道具 举报

175#
发表于 2023-9-22 09:03:20 | 只看该作者
nttwqz 发表于 2023-9-22 08:17
2010年的列兵?去其它地址下载

谢谢,当时注册后就很少来论坛了,最近想做一个适合自己的U盘启动盘。
回复

使用道具 举报

174#
 楼主| 发表于 2023-9-22 08:17:05 来自手机 | 只看该作者
2010hejunxin 发表于 2023-9-22 07:59
资格不够下载不了

2010年的列兵?去其它地址下载
回复

使用道具 举报

173#
发表于 2023-9-22 07:59:08 | 只看该作者
资格不够下载不了

点评

2010年的列兵?去其它地址下载  详情 回复 发表于 2023-9-22 08:17
回复

使用道具 举报

172#
发表于 2023-9-22 07:58:49 | 只看该作者
谢谢,学习了。
回复

使用道具 举报

171#
发表于 2023-9-21 22:35:28 | 只看该作者
#在这里快速回复#很给力!
回复

使用道具 举报

170#
发表于 2023-4-26 11:16:13 | 只看该作者
感谢分享
回复

使用道具 举报

169#
发表于 2023-1-21 17:53:09 | 只看该作者
学习了
回复

使用道具 举报

168#
发表于 2023-1-21 16:56:24 | 只看该作者
谢谢分享
回复

使用道具 举报

167#
发表于 2023-1-17 18:51:20 | 只看该作者
感谢分享
回复

使用道具 举报

166#
发表于 2022-12-6 17:17:05 | 只看该作者
支持一下
回复

使用道具 举报

165#
发表于 2022-7-21 08:30:40 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

164#
 楼主| 发表于 2022-7-5 07:47:59 来自手机 | 只看该作者
jwuskf 发表于 2022-7-4 23:52
是使用 call 调用的,我上年做的系统(WIN10 21H1 补丁打到上年8月)就已经开始用DP1.5,不用DP的情下,多 ...

读取注册表影响什么吗?

读取注册表主要是为了获取所有用户文件夹和已安装程序路径,应该是读取了所有用户,如果有多个用户的话,此段代码我记得在脚本末尾,你可以自己看,记得是用call调用,所以不想用可以注释掉。
回复

使用道具 举报

163#
发表于 2022-7-4 23:52:36 | 只看该作者
是使用 call 调用的,我上年做的系统(WIN10 21H1 补丁打到上年8月)就已经开始用DP1.5,不用DP的情下,多硬盘会出现盘符错乱,现在新做的定制系统是采用 WIN10 21H1 今年6月的MSDN订阅版,没有测试是否会出现盘符错乱,按习惯还是加了DP进去。DP读取注册表是否需要administrator用户的注册表?

点评

读取注册表影响什么吗? 读取注册表主要是为了获取所有用户文件夹和已安装程序路径,应该是读取了所有用户,如果有多个用户的话,此段代码我记得在脚本末尾,你可以自己看,记得是用call调用,所以不想用可以注释  详情 回复 发表于 2022-7-5 07:47
回复

使用道具 举报

162#
 楼主| 发表于 2022-7-4 23:19:03 | 只看该作者
本帖最后由 nttwqz 于 2022-7-4 23:22 编辑
jwuskf 发表于 2022-7-4 23:03
是希望在系统安装过程中自动整理一下,我之前在第一次系统登录(无人守值自动开启administrator帐号登录时 ...

不用QQ很多年……感觉QQ群的效率比论坛高,但是没有帖子直观,还是论坛更适合用来交流技术。

你用的是call调用吧?改用start "" /wait应该就能避免这种问题,这样即使调用(打开)的脚本发生错误,一般也不会导致主脚本退出。

盘符整理不会修改注册表,但会读取注册表。

话说,最新的系统貌似对盘符分配做了优化,一般安装好就是正确盘符了,即使挂两块机械硬盘一般也是正确的,不正确的比较少见。

回复

使用道具 举报

161#
发表于 2022-7-4 23:03:43 | 只看该作者
是希望在系统安装过程中自动整理一下,我之前在第一次系统登录(无人守值自动开启administrator帐号登录时)用其它批处理调用DP.bat(1.5和1.6都试了,1.7还没试),因为DP.bat里有几个exit命令,会导致调用它的主批处理程序会退出不执行后面的命令,所以我把exit都换成了exit /b,实际测试中,大部电脑可以正常运行,但还会有极少电脑调用DP.bat会导致调用它的主批处理程序会退出不执行后面的命令,后来发现打错的 goto :efo,我现在就是想把DP.bat 放到SetupComplete.cmd 最后的命令来调用,不知道DP.bat是否需要修改用户相关的注册表等,楼主是否有QQ交流群呢?想和你交流使用情况!

点评

不用QQ很多年……感觉QQ群的效率比论坛高,但是没有帖子直观。 你用的是call调用吧?改用start "" /wait应该就能避免这种问题,这样即使调用(打开)的脚本发生错误,一般也不会导致主脚本退出。 话说,最新的  详情 回复 发表于 2022-7-4 23:19
回复

使用道具 举报

160#
 楼主| 发表于 2022-7-4 21:28:07 | 只看该作者
jwuskf 发表于 2022-7-4 16:52
批处理第 2339行的 goto :efo  是不是打错了? goto :eof 才对?

另外我想问一下,如果我把此程序用在 ...

确实,你看的真够仔细的,感谢!附件已更新,你也可以自己改,不改估计也影响不了什么,因为这之前程序应该就退出了。

话说,这是怎么发现的?是准备修改一下?

你是准备在正常系统安装过程中自动整理一下,达到进桌面系统装好盘符就正确的效果?这个我真没想过,所以也没有进行过此方面的任何测试,只能你自己测试了。无人值守文件有个首次进桌面欢迎屏幕时执行,你试试,估计应该有用,至于SetupComplete.cmd估计够呛,试试无妨。
回复

使用道具 举报

159#
发表于 2022-7-4 16:52:47 | 只看该作者
nttwqz 发表于 2022-6-8 12:50
DP盘符整理 1.0.7 更新日志

解决部分已知问题

批处理第 2339行的 goto :efo  是不是打错了? goto :eof 才对?

另外我想问一下,如果我把此程序用在系统的无人守值安装,应该在什么时机调用比较合适?
能否在建用户之前调用?

点评

确实,你看的真够仔细的,感谢!附件已更新,你也可以自己改,不改估计也影响不了什么,因为这之前程序应该就退出了。 话说,这是怎么发现的?是准备修改一下? 你是准备在正常系统安装过程中自动整理一下,达  详情 回复 发表于 2022-7-4 21:28
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-22 16:12

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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