| 
 | 
 本帖最后由 dos时代菜鸟 于 2019-7-31 23:35 编辑  
 
 
这就好办了 
 
diskpart Shell 1.23.4.7z
(1.63 MB, 下载次数: 6)
 
 
正常是应该先考虑 list part + sele part + detail part +list vol+ detail vol  , 
但是有那个 id=ef 的情况,我就考虑 detail disk + sele vol +detail part +detail vol 再 list part +sele part +detail part ,就是先把 vol 的信息都跟分区对应着存好,list part 的时候,就只剩下没有 卷的分区信息需要搜集了,没有卷的分区对应的信息也少。结果现在出现 找不到对应分区的卷这种情况,也就是 预 * 了的分区,如果sele vol + list part 可以获取焦点分区 能够把卷跟分区对应上,也就没问题了。 
 
获取硬盘分区序列的算法: 
1、list disk获取硬盘列表 计算硬盘个数/dyn/sta/size/free 
2、逐个选取硬盘 sele disk x 
        3、detail disk 获取硬盘信息和所包含的各个卷  
               硬盘的 name/prot/gpt/rw/info 
         4、逐个选择卷 sele vol x 
         5、detail part 获得卷及对应分区编号和部分分区信息, 
                卷对应的 分区号/act/id/hid# 
           如果无法获取改卷对应的分区,尝试通过  
           5.1  list part 获取当前分区焦点的方式获取对应的分区号,但将无法获取 /act/id/hid# 
           如果明确了卷 对应的 分区         
           6、获得卷的信息 
               卷的 卷号/盘符/卷标/FS/STA/info  
           7、detail vol 获取卷的一些信息 
                 卷对应的 rw/hid*/free 
     8、list part 获取该硬盘对应的分区列表 获取各个分区的一部分信息 
          分区对应的 硬盘/分区号/type/size/offset  
     9、结合第5步逐个判断分区是否有对应的卷,如果有,就用(5/6/7步)已提取过的卷数据冲入该分区对应的变量组中,如果没有  
          10、选择这个分区 sele part x 
          11、detail part  获取分区对应的另一部分信息  分区号/act/id/hid#/卷号 
12、list vdisk  获取虚拟硬盘列表,将虚拟硬盘的部分信息修改进对应硬盘的信息中,name/port等 
 |   
 
 
 
 |