本帖最后由 nttwqz 于 2023-2-21 23:55 编辑 测试版更新日志 尝试规避或修复diskpart本身的bug引起的bug 由于diskpart脚本行数的增加等原因效率比2.6.4下降了大约15% |
谢谢分享 |
学习一下 |
顶顶 |
支持大佬 |
支持大大更新 |
更新一下,继续完善修复因diskpart自身bug引起的bug |
感谢分享 |
还是自己打造的工具用起来习惯,一般也不用坐轮椅! 在这里也分享给大家。(bat 文件) |
83.24 KB, 下载次数: 6, 下载积分: 无忧币 -2
初学CMD 希望大佬能够指点 |
感谢分享 很实用 |
这么多的代码,楼主辛苦了,感谢分享 |
本帖最后由 dos时代菜鸟 于 2022-9-1 13:22 编辑 nttwqz 发表于 2022-9-1 01:49 搞了一个 通过 分区 字节偏移量 来定位 分区 与 卷 对应关系的 脚本。不知道 能不能规避 一些bug . |
论坛又把贴子后半部分吃掉了 |
dos时代菜鸟 发表于 2022-8-31 22:40 看了下之前的回复,上次研究此bug已经是差不多一年半以前的事情了,我也记不太清除当初为何才用了这种信息对比排除法,感觉代码写多了有时候想法会陷入误区,无法达到当局者也清的境界。 根据之前的记载及刚刚的测试,det disk/list vol获取的卷号的确是正确的,sel part/det part获取的卷号是错误的。既然如此,以det disk/list vol获取的正确卷号通过sel vol/det vol /det part就能获取对应的磁盘与分区的关系,这样依然能获取卷对应的磁盘分区,磁盘的卷列表,这样就跳过这个卷号错误的bug了。 不过呢,选择卷和选择分区获取信息都有bug,我记得有的选择卷获取不到分区信息,有的选择分区获取不到卷信息 刚刚又试了一下,目前发现det disk/list vol获取的卷号还是比较准确的,sel part/det part的bug远不止卷号错误这么简单,目前发现的bug可能只是冰山一角,有属性的都容易出错,下面这种情形连卷号都获取不到了(这也导致了2.6.4中该卷号无法获取的bug),但是选择卷获取正常。diskpart真是从让人从研究到放弃,这bug何其多啊,让人产生一种用编程语言重写的冲动,可惜我不会…… 我在考虑,要不要从第一步list vol获取卷号及卷部分信息,det disk获取磁盘所属卷信息,改成将获取的磁盘卷号通过sel vol/det vol/det part获取信息来规避卷号错误bug,不过不知道用的多了会不会发现新的bug。 8.1系统
|
时隔将近一年,再次更新一下 |
大师就是牛....... |
谢谢分享! |
谢谢分享 |
脚本修改后可以显示了。 |
nttwqz 发表于 2021-4-12 17:43 DiskPart 版本 6.1.7601 WIN7 32位,打过SP1 型号未显示。 |
szwp 发表于 2021-4-12 16:18 刚研究了下偏移量字节值相减对比分区大小差距,有的相同,有的差几M,有的差几K,有的甚至差1G,看来这个不太准确,也或许需要其它计算方法。 |
本帖最后由 nttwqz 于 2021-4-12 17:50 编辑 szwp 发表于 2021-4-12 16:18 之前用Win7测试的时候发现其不能显示硬盘型号,所以添加限制以防出错,刚测试发现Win7不行,Win7 SP1可以,也就是7601可以。 所以需要改变系统版本号判断如下
并将搜索到的第一个name行if %ver% gtr 61 if not defined dk_!dn!_name开头的if %ver% gtr 61改成if %ver% gtr 60 if %verbuild% gtr 7600 简单试了下,删除版本限制也并没有获取到错误的值 |
不知道为啥有台电脑的硬盘型号没显示出来。 磁盘管理中保留2位小数,所以大于0.005G=5.12MB就有零头.01显示,而硬盘容量只到MB话,还是有可能会有不到0.5MB零头,安全的无零头显示还是+4以内。如果以shrink方式的话,+5也是安全的,下次试试,不过怕会影响分区序号,以前增删后序号有变化引起多引导的错误。 |
本帖最后由 nttwqz 于 2021-4-12 12:40 编辑 szwp 发表于 2021-4-12 11:24 一般整数MB+8就好,比如307208就显示整数300G,102408就显示整数100GB 有整数分区计算器,可以搜搜,下面就是一个 https://www.iplaysoft.com/tools/partition-calculator/ |
nttwqz 发表于 2021-4-12 11:07 硬盘管理里显示的分区单位通常是G,有2位小数,误差在5兆内才会显示.00。有点强迫症吧,所以经常要在脚本里调整下数字。 |
Powered by Discuz! X3.3
© 2001-2017 Comsenz Inc.