|
我看,你这个所谓的“尝试通过 字节偏移 找到分区对应的卷信息”只不过是磁盘信息和卷信息的变量转换。
- sel vol #/det part/det vol
- sel disk #/sel part #/det part
复制代码
后者部分使用了前者卷获得的信息,这和我多年来使用的方法基本相同,也想不到什么好办法,操作卷获取的信息正确,操作磁盘分区获取的信息错误,就用前者正确替换后者的错误,反之亦然。
很遗憾,通过卷获取的卷和分区信息也不一定是正确的,由于这个原因我的dpinfo更新已经搁置好几个月了,我尝试了同时操作磁盘分区获取分区和卷信息、操作卷获取获取分区和卷信息,最后对比再bug修复,这种方法对效率影响不小;还尝试了操作卷获取获取分区和卷信息,操作磁盘分区获取分区信息(忽略卷信息以规避一些bug),最后将卷获取的磁盘分区信息转换成与之对应的磁盘分区信息,再修复剩下的bug,这种方法效率比前面好了不少,比之前已发布版本使用的操作磁盘分区获取为主,个别卷为辅的方法还是慢了10%。
之前改来改去没空看这个脚本,核心代码应该就是这几行。另外,69行少了一个双引号
- if "%%c"=="字节偏移" (
- set "off= %%d"
- for %%h in (!vols_off!) do (
- for /f "tokens=1,2,3 delims=." %%r in ("%%h") do (
- if "%%d"=="%%t" (if !disk! equ %%s (
- set vol_info=!vol%%r!
- set "free=!vol_%%r_free!"
- set online=!vol_%%r_online!
- set rw=!vol_%%r_rw!
- set /a vn+=1
- ))
- )
- )
- )
复制代码
diskpart [sel vol #/det part/det vol] 已知 bug,欢迎补充:
动态磁盘,sel vol #/det part提示没有选择分区,但sel part #/det part/det vol正常
|
|