|
本帖最后由 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等
|
|