无忧启动论坛

标题: DP盘符整理 1.0.7.1 [打印本页]

作者: nttwqz    时间: 2021-3-24 21:46
标题: DP盘符整理 1.0.7.1
本帖最后由 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, 下载次数: 681)

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



作者: ggl    时间: 2021-3-24 22:03
谢谢不错的工具
作者: 窄口牛    时间: 2021-3-24 22:18
半小时后的沙发
作者: sanshen3    时间: 2021-3-24 22:47
不错试试
作者: singel    时间: 2021-3-24 23:00
感谢分享!
作者: 2012wjia    时间: 2021-3-25 07:46
提示: 作者被禁止或删除 内容自动屏蔽
作者: wuxin9712    时间: 2021-3-25 07:48
支持原创
作者: wangsugertang    时间: 2021-3-25 08:15
不错,支持

作者: 2012andyle113    时间: 2021-3-25 08:27
感谢分享,盘符整理工具有好几个了
作者: bnsgj    时间: 2021-3-25 08:37
简单实用
作者: ogopogo    时间: 2021-3-25 14:40
谢谢不错的工具
作者: 进士小站    时间: 2021-3-25 14:49
谢谢楼主分享
作者: 俊采星驰    时间: 2021-3-25 19:47
窄口牛 发表于 2021-3-24 22:18
半小时后的沙发

板凳了:)
作者: nttwqz    时间: 2021-3-25 21:08
更新日志

之前测试的时候,有处括号忘记改过来了,导致在PE下倒序整理时,第一次正常,ACT/ESP分配盘符后,第二次打开将C吞掉导致仍需整理的问题,如果ACT/ESP本来就有盘符,也会受到影响。顺序模式和倒序模式ACT/ESP无盘符且整理一次的不受此bug影响,相信不会有人整理两次。
作者: 2011poiuyt    时间: 2021-3-25 21:14
谢谢楼主分享,辛苦了!
作者: sunshineboy    时间: 2021-3-27 20:26
试试看
作者: wangsugertang    时间: 2021-4-1 08:45
下载下来应用,谢谢大佬
作者: iamxiume    时间: 2021-4-6 10:41
不是新系统别乱用
作者: nttwqz    时间: 2021-4-18 14:52
smss 发表于 2021-4-18 13:44
盘符整理会把ESP、MSR分区分配盘符
而后边的引导分区工具时就会出问题 已重刷好几次机了
希望作者大大改 ...

ESP分区分配盘符我知道,因为本来就会分配,正常系统下不分配(有开关),PE下WinNTSetup会自动检测并使用该分区盘符。但是MSR分区分配盘符的情况我没遇到过,因为微软保留分区一般是不格式化的,也就是没有文件系统,无盘符无文件系统列表关键字的分区是不分配盘符的,除非有bug。

恢复分区会分配盘符的情况我知道,已在1.0.2测试版中修正,你正好帮忙测试下,一个人的力量有限。
注意:恢复分区正常情况下需要GPT ATTRIBUTES=0x8000000000000001设置属性,否则仍可能会分配盘符

正常系统下U盘ACT/ESP分区分配Z的问题,有开关可以自己修改(1.0.2已默认打开)

暂无固定U盘为U的计划,之前认真考虑过,貌似有用实则无用,特别是现在10系统默认显示优盘多分区,现在启动优盘一般都是多分区,正序整理就好,虽然对于本工具来说实现优盘多分区UVWYZ排列并非难事。


完善分区属性判断,增加全局开关“排除无盘符分区”

DP盘符整理_1.0.2.bat.7z

16.98 KB, 下载次数: 13


作者: linzhi1168    时间: 2021-4-18 18:51
谢谢分享
作者: nttwqz    时间: 2021-4-20 20:02
smss 发表于 2021-4-20 18:19
以下这句在PE中使用要删除 (PE中好多都已精减 何况无须提权 有这句会闪退无限卡cmd窗口)
::自动请求以 ...

会吗?这句可是用了好多年,而我的哪个pe从来都没有支持过vbs。因为只有reg查询失败后才会执行后面的命令,而reg属于内置命令,pe又默认有权限,所以应该都正确。

个人不少情况会在正常系统中使用,不想删除这句,下个版本发布时我可以在帖子中注明,需要删除的可自行删除。
作者: nttwqz    时间: 2021-4-20 20:04
smss 发表于 2021-4-20 18:19
以下这句在PE中使用要删除 (PE中好多都已精减 何况无须提权 有这句会闪退无限卡cmd窗口)
::自动请求以 ...

我可以改为当系统盘盘符是C执行。
作者: wangsugertang    时间: 2021-4-27 14:39
软件急需的,支持下
作者: nttwqz    时间: 2021-4-27 22:29
更新日志
1. 新增排除无盘符分区开关,默认关闭,开启后仅处理有盘符的分区,优先级高于mountactesp。
2. 现在默认打开ACT/ESP倒序分配模式排除USB设备开关,这样正常10系统U盘多分区按正序排列。
3. 解决部分已知问题。
作者: tianerhupan    时间: 2021-4-28 09:44
谢谢
作者: yisheng1312    时间: 2021-5-15 15:57

谢谢分享
作者: wangsugertang    时间: 2021-6-9 12:34
谢谢分享

作者: lb9433    时间: 2021-6-19 15:23
在PE下试了试,U盘是量产+Ventoy。Ventoy 启动PE的ISO ,进桌面手动启动盘符整理,U盘可见数据区盘符消失,分区不可见,Ventoy 启动隐藏区分配盘符,分区变为可见。
作者: nttwqz    时间: 2021-6-19 15:29
本帖最后由 nttwqz 于 2021-6-19 15:40 编辑
lb9433 发表于 2021-6-19 15:23
在PE下试了试,U盘是量产+Ventoy。Ventoy 启动PE的ISO ,进桌面手动启动盘符整理,U盘可见数据区盘符消失, ...


截图上传看看
把"%temp%\dkltrsort.tmp"也传上来
作者: lb9433    时间: 2021-6-19 18:23
dkltrsort.rar (681 Bytes, 下载次数: 2)

整理前


整理后


作者: nttwqz    时间: 2021-6-19 18:51
lb9433 发表于 2021-6-19 18:23
整理前



请上传批处理本身的截图,或者dpinfo的截图
作者: nttwqz    时间: 2021-6-19 19:20
lb9433 发表于 2021-6-19 18:23
整理前

初步判断,这可能是信息识别错误,由于diskpart存在卷号错误等bug,批处理中可能未完全纠正,卷号5可能错误。

从dkltrsort看,VTOYEFI是一个14G的FAT分区,但是从图上看,其是一个32M的分区,当然,这以diskpart为准。

先执行盘符整理脚本,然后管理员cmd下
diskpart /s "%temp%\dkdet.tmp">d:\dklog.log

然后上传d:\dklog.log

作者: lb9433    时间: 2021-6-19 20:10
dklog.rar (816 Bytes, 下载次数: 3)





作者: nttwqz    时间: 2021-6-19 20:55
lb9433 发表于 2021-6-19 20:10

你把"%temp%\dkdet.tmp"也传上来。
作者: lb9433    时间: 2021-6-19 22:10
D.zip (1.2 KB, 下载次数: 3)

作者: nttwqz    时间: 2021-6-19 22:36
lb9433 发表于 2021-6-19 22:10

请执行
diskpart /s "%temp%\dk.tmp">d:\dk.log

然后上传
d:\dk.log

谢谢!

这个和Win10分区类型:EF时diskpart的一个bug有关,看来之前处理该bug的方法有待完善。
作者: lb9433    时间: 2021-6-19 23:19
D.7z (960 Bytes, 下载次数: 5)

作者: nttwqz    时间: 2021-6-20 17:32
本帖最后由 nttwqz 于 2021-6-20 17:33 编辑

1.0.2.1是修复了你反馈的bug的版本,版本号仅为了区分1.0.2
1.0.3 在1.0.2.1的基础上增加了新功能,在多个磁盘的情况下,比如SSD+HDD,当所有磁盘中只有一个系统时,可将系统所在磁盘前置,默认开启。有条件可帮忙测试,我这儿条件有限,不放心请使用1.0.2.1。

都是测试版,暂不发布正式版。

无论正常与否,请上传"%temp%\dkltrsort.tmp",我也好知道修复情况。


beta.7z (17.57 KB, 下载次数: 3)

作者: lb9433    时间: 2021-6-20 21:25
试了下,没有问题。1.0.3我用台式机测试了也没什么问题。
1.0.2.1   temp.7z (962 Bytes, 下载次数: 1)



1.0.3 temp.zip (1.39 KB, 下载次数: 3)


作者: nttwqz    时间: 2021-6-20 21:35
lb9433 发表于 2021-6-20 21:25
试了下,没有问题。1.0.3我用台式机测试了也没什么问题。
1.0.2.1  

多谢!

从反馈看,ID=EF这个bug在19041PE上也存在,看来有必要修改下注释了。

对于1.0.3,你这也没有满足测试条件,所以也是正常的,仍然感谢。
作者: 苍山有井名为空    时间: 2021-6-22 22:49
感谢楼主热心分享
作者: nttwqz    时间: 2021-6-26 23:33
更新日志
1. 新增Windows所在磁盘前置功能,仅所有硬盘中只有一个Windows分区时有效,默认开启。
2. 解决部分已知问题。
作者: 爱启动    时间: 2021-7-1 18:25
进桌面手动启动盘符整理
作者: pehaha    时间: 2021-7-11 11:08
谢谢不错的工具
作者: yeke    时间: 2021-9-5 08:17
这个好,在PE中加个 /s 参数调用,固态盘+机械盘+USB2.0U盘+固态U盘,整理到位,已替换其它盘符整理工具了
作者: 2012zhd    时间: 2022-1-20 13:05
在11pe下测试,我这里把esp分区整理成了C,把系统分区整理成了D.
作者: nttwqz    时间: 2022-1-20 13:21
2012zhd 发表于 2022-1-20 13:05
在11pe下测试,我这里把esp分区整理成了C,把系统分区整理成了D.

正常,默认就是这么整理的!

如果想让ESP及活动分区倒序整理,请自行更改设置,在脚本开头。
作者: 2012zhd    时间: 2022-1-20 13:30
nttwqz 发表于 2022-1-20 13:21
正常,默认就是这么整理的!

如果想让ESP及活动分区倒序整理,请自行更改设置,在脚本开头。

好的,那就没什么问题了。

我这里是ssd+500g机械+500g机械
其他盘符整理的都很顺当。

感谢。
作者: nttwqz    时间: 2022-1-20 17:40
2012zhd 发表于 2022-1-20 13:30
好的,那就没什么问题了。

我这里是ssd+500g机械+500g机械

有兴趣的可以帮忙测试1.0.4,尚未正式发布!

更新日志
1. Windows所在磁盘前置现在也适用于当前系统磁盘,此功能默认开启,支持关闭。当安装了多块磁盘,且当前系统非磁盘0时,之前版本会优先将除系统盘符外的盘符分配盘符给磁盘0,之后按照磁盘编号顺序才会分配该当前系统磁盘,现在默认会分配当前系统磁盘所有符合条件的分区,然后再分配其它磁盘。

2. 调整自动模式窗口大小和标题,现在更小了。

DP盘符整理_1.0.4.bat.7z

18.56 KB, 下载次数: 16


作者: 2012zhd    时间: 2022-1-20 19:16
nttwqz 发表于 2022-1-20 17:40
有兴趣的可以帮忙测试1.0.4,尚未正式发布!

更新日志

11PE下DP盘符整理_1.0.4测试:
1.整理盘符前
2
2.整理后





作者: 2012zhd    时间: 2022-1-20 19:20
nttwqz 发表于 2022-1-20 17:40
有兴趣的可以帮忙测试1.0.4,尚未正式发布!

更新日志

我这里是单系统,更新的内容无法测试。
作者: 开裆裤看    时间: 2022-1-21 09:25
桌面环境整理后会把ventoy的隐藏启动分区激活并分配盘符
作者: nttwqz    时间: 2022-1-23 21:52
本帖最后由 nttwqz 于 2022-1-23 22:25 编辑
开裆裤看 发表于 2022-1-21 09:25
桌面环境整理后会把ventoy的隐藏启动分区激活并分配盘符


经测试,它的启动分区应该是手动指定了分区ID为EF,即ESP分区,但是MBR并不存在ESP分区,GPT默认无法用于U盘,所以就没有考虑这种情况情况。

我可以考虑加个功能,弄个分区ID排除列表选项,到时候列表中的分区ID在没有盘符的情况下就不会被分配盘符了,当然了,是全局生效,PE下也不会被分配。如果仅正常系统生效,不知道其它人有没有全局生效的需求,难道我弄两个列表分别控制?

其实,正常系统用盘符整理工具应该不多,估计也就是系统刚装完盘符可能错乱时用一次,之后就很难再使用了,PE下用的更多,这种情况可以考虑打开排除无盘符分区开关,仅整理有盘符的分区,这样就不会有多余的盘符被分配了,修改后的脚本可以只用于正常系统整理。

说起修改,本工具还有个另类的用法,可以复制一份,打开正常系统挂载ACTESP分区开关,将平常可能用到的盘符全部加入白名单,这样就可以作为挂载工具使用了,与mountvol /S参数不同的是,本工具针对所有硬盘生效,然后再复制修改一份用于删除盘符,折腾多硬盘多系统的可能会用到。
作者: 开裆裤看    时间: 2022-1-24 11:25
批处理加个判断当前环境?桌面/ pe?桌面不显示隐藏的esp分区 不分配盘符   (小白 ,不懂 您看看怎么处理)  论坛有另一个盘符整理小工具  那个不会加载ESP 识别ESP会执行跳过。
作者: andy168    时间: 2022-1-24 12:10
不错的处理方式
作者: nttwqz    时间: 2022-1-24 13:27
开裆裤看 发表于 2022-1-24 11:25
批处理加个判断当前环境?桌面/ pe?桌面不显示隐藏的esp分区 不分配盘符   (小白 ,不懂 您看看怎么处理 ...

感情上面写那么多白回复了……

开头有好多开关可以修改,桌面ESP分配与否全凭自己意愿。
作者: nttwqz    时间: 2022-3-2 23:11

更新日志

1. Windows所在磁盘前置现在也适用于当前系统磁盘,此功能默认开启,支持关闭。当安装了多块磁盘,且当前系统非磁盘0时,之前版本会优先将除系统盘符外的盘符分配盘符给磁盘0,之后按照磁盘编号顺序才会分配该当前系统磁盘,现在默认会分配当前系统磁盘所有符合条件的分区,然后再分配其它磁盘。

2. 调整自动模式窗口大小和标题,现在更小了。



除注释对齐外,与52楼1月20号发布的测试版完全相同,已经下载的不用重新下载。

暂时不打算修正默认为正常Win10系统Ventoy工具ID为EF的分区分配盘符的问题,毕竟可以通过打开“排除无盘符分区”来实现,正常系统盘符整理工具极少使用。

不修正原因:Ventoy工具创建的启动盘,MBR分区表同时有活动分区和ESP分区(ID=EF),个人感觉属于非标分区方案,暂不予支持!


提供两种修正方法,未测试!在标签:ltrsort下面加入任意一种
  1. ::方法一:
  2. rem 人为将分区ID=EF的分区隐藏属性指定为是
  3. for %%a in (!dkpl!) do if /i "!dk_%%a_id!"=="EF" set "dk_%%a_hidden=是"

  4. ::方法二:
  5. rem 人为将分区ID=EF的分区指定为ESP分区
  6. for %%a in (!dkpl!) do if /i "!dk_%%a_id!"=="EF" set "dk_%%a_act=*"&set "dk_%%a_act_echo=     * "
复制代码



作者: victor888    时间: 2022-3-5 13:56
谢谢楼主分享,DISKPART也是一种不错的解决方式,有时间研究一下你的批处理。
作者: nttwqz    时间: 2022-3-5 14:32
victor888 发表于 2022-3-5 13:56
谢谢楼主分享,DISKPART也是一种不错的解决方式,有时间研究一下你的批处理。

唉,其实我们这种基于别人的程序编写的批处理,最终的结果都是殊途同归!虽然我这个仅仅是基于系统自带diskpart,你的除了系统自带还用到了第三方工具,但结果都是一样的。我们面临着相同的问题,别人的程序都是有bug的,浅用没问题,深入使用就会发现一堆bug,这个问题你应该深有体会,diskpart也是如此。你我都不得不靠批处理尽量如修正别人程序的bug,要么联系作者,像微软这种估计不会搭理你我等普通人。

最终是不是还是要编程来实现,这样只需要修复自己程序的bug就好,考虑下?


我突然感觉这世间的很多事物都是如此,只要够深入,总能发现问题,没有什么是完美的,我深信这宇宙也是如此,肯定有一堆bug,人类也早晚实现修真小说中的梦想,掌握宇宙法则的运用,比如时间和空间的运用,然后肯定也有文明能利用这宇宙的漏洞……
作者: victor888    时间: 2022-3-5 19:39
哈哈,我们都是BUG维修者!
作者: nttwqz    时间: 2022-3-8 22:41
更新日志

1. 解决了当多个硬盘且系统不在第一个硬盘、Windows磁盘前置功能开启、所有硬盘只有一个系统时,分割线没有跟随磁盘前置调整造成分割线显示错误的问题



1.0.4相对于之前的测试版仅仅调整了注释对齐,不影响整理效果


1.0.5相对于1.0.4仅仅调整了上述条件下手动整理显示重复分割线的问题,1.0.4测试版到1.0.5盘符整理方面没有任何更改,不在意的可以不用重新下载


作者: tqh608    时间: 2022-3-12 10:51
楼主,这个可以的,能否在pe下自动运行理顺好,不需手动
作者: nttwqz    时间: 2022-3-12 11:10
tqh608 发表于 2022-3-12 10:51
楼主,这个可以的,能否在pe下自动运行理顺好,不需手动

仔细看介绍,有说明,自动整理参数/S
作者: 窄口牛    时间: 2022-3-12 11:25
吓得我以为又更新了。
作者: tqh608    时间: 2022-3-12 11:43
直接弄个自动的不好吗?
作者: nttwqz    时间: 2022-3-12 12:17
tqh608 发表于 2022-3-12 11:43
直接弄个自动的不好吗?

论坛之前有人弄过exe版本的,后来挨骂不弄了,什么都默认自动不好,参数调用也不复杂
作者: tqh608    时间: 2022-3-12 12:20
主要是不会调用
作者: nttwqz    时间: 2022-3-12 12:44
窄口牛 发表于 2022-3-12 11:25
吓得我以为又更新了。

本工具已经趋于稳定,暂未发现明显bug,也想不到什么好的功能,所以暂无更新计划。
本来之前准备增加个非连续匹配或者区间匹配功能,比如第一块硬盘是CDEF,第二块是JKL,第三块是Z,实际上这也是理顺的,不用整理的。但思来想去,觉得这样的大都是手动改的,用不到整理类工具,PE也没有整理成这样的必要,增加此功能势必会使代码逻辑更加复杂,要考虑判断一堆东西,出错机率更高,感觉得不偿失,所以一直搁置了。


牛大有什么好想法?
作者: tqh608    时间: 2022-3-12 12:57
既然稳定了,还是希望有个自动的
作者: nttwqz    时间: 2022-3-12 15:12
tqh608 发表于 2022-3-12 12:20
主要是不会调用

真的假的?看了下,你可是07年注册前辈。。。

在批处理第一行后面加入一行

  1. if /i "%~1"=="" %0 /S
复制代码

作者: tqh608    时间: 2022-3-12 19:53
nttwqz 发表于 2022-3-12 15:12
真的假的?看了下,你可是07年注册前辈。。。

在批处理第一行后面加入一行

加入代码后成功自动整理盘符完美,谢谢楼主。
作者: smss    时间: 2022-3-29 10:41
1会把隐藏盘符也分配
2如果笔记本带读卡器 多出一个幽灵盘 会导致U盘盘符分配失败
希望能把U盘固定为U V (靠后的字母)从而避开这种情况

作者: nttwqz    时间: 2022-3-29 13:46
smss 发表于 2022-3-29 10:41
1会把隐藏盘符也分配
2如果笔记本带读卡器 多出一个幽灵盘 会导致U盘盘符分配失败
希望能把U盘固定为U V  ...

安照批处理中的方法上传我看看
作者: nttwqz    时间: 2022-3-30 15:29
smss 发表于 2022-3-29 10:41
1会把隐藏盘符也分配
2如果笔记本带读卡器 多出一个幽灵盘 会导致U盘盘符分配失败
希望能把U盘固定为U V  ...

那就不用截图了,直接上传附件吧。我的电脑读卡器没是此问题。
作者: smss    时间: 2022-3-30 17:44
1

无标题.jpg (177.32 KB, 下载次数: 240)

无标题.jpg

作者: smss    时间: 2022-3-30 17:49
2

无标题.png (107.54 KB, 下载次数: 260)

无标题.png

作者: nttwqz    时间: 2022-3-30 18:13
smss 发表于 2022-3-30 17:49
2

看来你到底是没看脚本开头的bug反馈注释:

  1. ::盘符整理Bug反馈:管理员cmd内执行 diskpart /s "%temp%\dk.tmp">"%temp%\dkl.tmp"&type "%temp%\dkdet.tmp"|diskpart>"%temp%\dkpdet.tmp" ,然后上传 "%temp%\dkl.tmp";"%temp%\dkdet.tmp";"%temp%\dkpdet.tmp";"%temp%\dkltrsort.tmp"
复制代码


作者: nttwqz    时间: 2022-3-30 18:30
smss 发表于 2022-3-30 17:44
1

活动、ESP分区默认并非隐藏分区,只是Windows系统正常不显示而已,但并没有隐藏分区属性,鉴于PE一般用途都是维护,装系统、修复启动等等,所以默认分配盘符,这是PE下强制开启的,不改代码无法关闭,我可以考虑将“排除无盘符分区,仅处理有盘符的分区”开关改为全局生效,现在仅系统盘符是C时生效。如果你只是不习惯其排在最前面,可以将set czmode=Y后面的Y删除(set czmode=),从而启用ACT/ESP分区倒序分配模式,从Z往前分配。

只有分区没有隐藏属性或防止为分区自动分配驱动器号属性,且文件系统在分配盘符的文件系统关键字列表中,才可能会分配盘符,很明显,活动或ESP分区默认满足不了这种情况。
作者: kaix23    时间: 2022-3-30 18:37
下载试用下,谢谢分享!
作者: smss    时间: 2022-3-30 20:39
3

Temp.7z

2.09 KB, 下载次数: 1


作者: smss    时间: 2022-3-30 20:42
图1是G加入白名单才不整理U盘的,用DiskGenius分配的H盘
作者: nttwqz    时间: 2022-3-30 22:12
本帖最后由 nttwqz 于 2022-3-30 22:20 编辑
smss 发表于 2022-3-30 20:42
图1是G加入白名单才不整理U盘的,用DiskGenius分配的H盘

正在看你上传的附件,感觉有些问题,不像是来自同一次执行脚本生成的tmp文件,像是两次拼凑的,因为我觉得dpinfo不应该有这么严重的错误。我先凑合看,如果条件允许,保险起见请清空临时文件夹tmp文件,再次整理上传。请勿在脚本运行时插拔磁盘,弹出光盘等,否则会引起异常。也请保持手动运行反馈命令时硬件和之前相同。



上面是list disk获取的磁盘列表,注意上面是没有磁盘2的,但是到了最后,有冒出来一个磁盘2,其信息竟然是正常的?!


作者: smss    时间: 2022-3-30 22:41
我清掉%Temp%重新生成一份不过只有3个文件 试了几次都是这样

未标题-1.jpg (293.54 KB, 下载次数: 246)

未标题-1.jpg

未标题-2.jpg (830.11 KB, 下载次数: 226)

未标题-2.jpg

未标题-3.jpg (559.22 KB, 下载次数: 235)

未标题-3.jpg

Temp.7z

922 Bytes, 下载次数: 8


作者: tqh608    时间: 2022-3-31 09:02
本帖最后由 tqh608 于 2022-3-31 10:16 编辑

楼主,这种是什么情况,共插了3个u盘,有个u盘CDROM量产盘符没有显示出来:看图

TT截图未命名3.jpg (28.51 KB, 下载次数: 263)

TT截图未命名3.jpg

TT截图未命名2.jpg (42.68 KB, 下载次数: 286)

TT截图未命名2.jpg

TT截图未命名.jpg (71.2 KB, 下载次数: 278)

TT截图未命名.jpg

TT截图未命名4.jpg (73.25 KB, 下载次数: 253)

TT截图未命名4.jpg

作者: nttwqz    时间: 2022-3-31 11:09
tqh608 发表于 2022-3-31 09:02
楼主,这种是什么情况,共插了3个u盘,有个u盘CDROM量产盘符没有显示出来:看图

你手动进入diskpart
然后输入:
sel vol J
det vol
remove
assign letter=p

后面两句是先移除选中的卷盘符,然后重新分配,J用实际量产CD盘符替代,把det vol后面的结果发上来。
作者: tqh608    时间: 2022-3-31 14:16
nttwqz 发表于 2022-3-31 11:09
你手动进入diskpart
然后输入:
sel vol J

楼主,你能加QQ远程吗?
作者: tqh608    时间: 2022-3-31 14:23
tqh608 发表于 2022-3-31 14:16
楼主,你能加QQ远程吗?

没有选择卷

TT截图未命名5.jpg (5.76 KB, 下载次数: 266)

TT截图未命名5.jpg

作者: nttwqz    时间: 2022-3-31 14:39
tqh608 发表于 2022-3-31 14:23
没有选择卷

不用QQ多年,电脑手机都没有安装,密码也得想想。。。

如果J确实是你操作时的量产CD盘符,那只能说明是diskpart不支持这类设备,也或许是其bug,只能考略用其它工具实现了。你下载dpinfo,随便选中个磁盘分区,然后把生成的文本文件传上来。
作者: tqh608    时间: 2022-3-31 14:44
本帖最后由 tqh608 于 2022-3-31 15:06 编辑
nttwqz 发表于 2022-3-31 14:39
不用QQ多年,电脑手机都没有安装,密码也得想想。。。

如果J确实是你操作时的量产CD盘符,那只能说明 ...

要在磁盘管理里面指定添加CDROM盘符就出来了

TT截图未命名6.jpg (29.35 KB, 下载次数: 266)

TT截图未命名6.jpg

TT截图未命名7.jpg (70.21 KB, 下载次数: 259)

TT截图未命名7.jpg

作者: tqh608    时间: 2022-3-31 15:06
本帖最后由 tqh608 于 2022-3-31 16:29 编辑
tqh608 发表于 2022-3-31 14:44
要在磁盘管理里面指定添加CDROM盘符就出来了

那个生成文本找到了,已上传,你这个盘符理顺工具真的很好,期待楼主修正更新。

文本.7z

2.32 KB, 下载次数: 4


作者: coocoo99    时间: 2022-4-1 14:49
已学习,谢谢
作者: nttwqz    时间: 2022-4-2 00:34
本帖最后由 nttwqz 于 2022-5-12 23:00 编辑

DP盘符整理 1.0.6 更新日志

1. 增加生效范围设置,满足更多人个性需求,目前支持已支持设置:排除无盘符分区生效范围、排除非diskpart盘符生效范围、挂载ACT/ESP分区生效范围,值为系统盘符,空时全局生效。
2. 增加分区ID白名单,无盘符时不分配盘符的分区ID列表,已默认加入EF,即Ventory创建的ESP分区。
3. 增加磁盘名称白名单,这些磁盘将不参与整理,维持其原样不变,英文逗号分隔,需Win7 SP1及以上操作系统。注意,如果将当前系统所在磁盘名称加入此名单,那么即使挂载ACT/ESP分区开关开启且生效,也不会改变ACT/ESP分区的盘符现状。
4. 增加检测识别非diskpart盘符功能,非diskpart盘符就是所有存在的盘符减去list vol获取的盘符,无法被diskpart操作,已知空读卡器有时会出现这种情况、还有内存盘、挂载的虚拟机磁盘等。为避免误操作,此类盘符的整理操作已被严格限制,当检测到此类盘符,需要使用mountvol操作,不存在mountvol时,自动加入盘符白名单。当mountvol获取的对应卷名称存在时,且fsutil获取的类型为“可移动驱动器”或者大小为0的非diskpart盘符,才参与整理,否则一律自动加入白名单。
5. 当检测到非diskpart盘符存在时,当fsutil可用时,自动使用fsutil获取设备类型、文件系统、卷标,方便识别。当fsutil不可用时,仅显示盘符。以其它开头的行就是此类设备了。
6. 增加排除非diskpart盘符开关,启用后仅处理diskpart能识别的设备盘符,默认禁用。
7. 增加问题反馈参数/bug,省去复制粘贴运行再打包繁琐步骤,自动执行并打包为压缩文件,只需将该文件上传即可。优先使用开源软件7-Zip打包,仅限默认安装路径,当失败时再使用makecab打包,若再失败,则提示手动打包。为了便于上传,格式都是7z。
8. 增加为磁盘无介质无盘符的卷分配盘符的开关,默认禁用。常见于空读卡器,正常系统此类驱动器一般隐藏,优盘右键弹出未物理拔出,又手动删除其盘符,也是这种情况。
9. 增加检测所有用户文件夹和已安装程序路径功能,仅正常系统检测,当检测到有位于非C盘路径时,自动将盘符加入白名单。用户文件夹路径检测支持符号链接追踪,就是如果使用了mklink转移了桌面等到非C盘,注册表路径不变时,那么这个转移后的盘符也会加入白名单。
10. 写入更多信息到diskpart整理盘符脚本,便于解决问题。
11. 完善Windows磁盘前置功能,在PE下无系统时,如果磁盘类型为NVMe或者磁盘名称中含有SSD,且仅有一个时也将其前置。
12. 完善所有存在盘符判断,正常系统未关闭UAC时,提权之前以普通权限获取一次,提权后再获取一次,对比得出仅普通权限存在的盘符,由于管理员权限无法操作该盘符,也全部加入白名单,避免占用造成其它盘符分配失败。如果直接右键“以管理员身份运行”,或者PE下,均不存在仅普通权限的盘符列表。
13. 解决部分已知问题



改动较多,代码相对于1.0.5增加了600多行。
感谢各位参与测试的坛友!


作者: tqh608    时间: 2022-4-2 19:29
1.0.6版一样的,那个量产光驱盘符没出来
作者: nttwqz    时间: 2022-4-2 19:35
tqh608 发表于 2022-4-2 19:29
1.0.6版一样的,那个量产光驱盘符没出来

整理后以/bug参数调用
作者: tqh608    时间: 2022-4-2 19:57
本帖最后由 tqh608 于 2022-4-6 09:12 编辑
nttwqz 发表于 2022-4-2 19:35
整理后以/bug参数调用

10PE量产光驱盘符没有,但11PE量产光驱盘符就有,有点奇怪,我发的是10PE测试的

作者: nttwqz    时间: 2022-4-3 00:16
tqh608 发表于 2022-4-2 19:57
10PE量产光驱盘符没有,但11PE量产光驱盘符就有,有点奇怪,我发的是10PE测试的

不知道为何,你就是死活不愿意使用参数调用,之前自动模式也是,命令行参数很简单的,莫非对命令参数过敏?



上面的方式是,按住Shift键在脚本所在目录空白处右键,然后选择“在此处打开命令窗口”,然后再黑色的窗口中输入dp,然后按Tab键,自动补全文件名,如果有多个DP开头的文件,再次重复按Tab键,直到正确的那个,然后输入空格,命令参数/bug。当然,你也可以将脚本改名,比如改成asdf,然后直接输入asdf /bug即可,注意脚本的名称不能和已知程序名相同,否则可能异常。


你也可以创建一个DP盘符整理文件的快捷方式,在文件属性中,目标的最后面加一个空格,然后接着输入参数/bug

如果文件位于D盘根目录,目标编辑完应该是这样的。

D:\DP盘符整理_1.0.6_beta2.bat /bug


都是很简单的,还请以后按照要求反馈问题,谢谢!


请下载beta2测试,反馈的问题应该已经修正。

不过,后面会继续对此部分代码进行改进,仍然可能引起异常,你可能依然需要测试后面的测试版,直至我不再改动这一部分代码。
作者: smss    时间: 2022-4-3 01:29
目前正常
作者: tqh608    时间: 2022-4-3 09:01
本帖最后由 tqh608 于 2022-4-3 09:05 编辑
tqh608 发表于 2022-4-2 19:57
10PE量产光驱盘符没有,但11PE量产光驱盘符就有,有点奇怪,我发的是10PE测试的

对不起,楼主,我不懂命令参数,只会复制输入命令截图,我要是懂这些,就好了。。。。。。
作者: tqh608    时间: 2022-4-3 10:02
本帖最后由 tqh608 于 2022-4-3 10:10 编辑

1.0.6_beta2成功显示出USB_CDROM盘符了,恭喜恭喜,楼主辛苦了,下次该正式版了。

TT截图未命名a.jpg (29.01 KB, 下载次数: 249)

TT截图未命名a.jpg

作者: nttwqz    时间: 2022-4-3 10:12
tqh608 发表于 2022-4-3 09:01
对不起,楼主,我不懂命令参数,只会复制输入命令截图,我要是懂这些,就好了。。。。。。

前面已经给你动画演示过了,感觉你是觉得复杂,其实很简单的,Windows的命令参数(也叫开关或选项),一般都是空格分割,一般/开头,也有-开头,或者无符号开头。

比如:
dir 查找当前目录文件
加/s查找当前目录及子目录文件
dir /s
/b 空格式,仅输出文件名,和/s一起使用输出完整路径
dir /s /b
set 命令,/a参数用于计算,参数1+1是数学表达式,计算1+1,输出结果2
set /a 1+1
计算1+2*8+3,输出结果20
set /a 1+2*8+3
/p用于获取用户输入内容,提示你输入内容,然后赋值给变量input
set /p input=
显示变量input的值,就是你输入的内容,
echo %input%
注册表操作命令reg,选项query用于查询
查询注册表"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion"下面的值"ProductName"的数据,输出是当前系统版本名称,比如Windows 8.1 Enterprise、Windows 7 Professional
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "ProductName"




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