关于用 diskpart 获取硬盘分区序列的 两个 脚本,用来明确第n硬盘第m分区及其对应...
本帖最后由 dos时代菜鸟 于 2018-6-5 10:44 编辑主打脚本:
已经 另建贴
http://wuyou.net/forum.php?mod=viewthread&tid=409455&fromuid=1198
其他脚本:
hd3.3.cmd 规避了 通过中文检索 ,但是 还是要到 有中文的行中指定 位置 找字符,明确分区是否 有 盘符。
hd3x.cmd 完全利用 中文字符进行检索,脚本效率有所提升,脚本体积也有所减少。
hd3y2.cmd 运行效率很慢,但是获取的信息就多了一些
这个是 用 hd3y2.cmd 的列表模式 改装的 交互式 装卸 分区盘符 的脚本样例。
考虑到 分区盘符变更后 重新生成 列表数据会 再一次 慢吞吞的完成,所以 增加了装卸操作完 自动刷新 功能。这样,生成一次 分区序列列表,以后 操作上,不会重复 全部分区的信息搜索,只是将新操作的分区的新信息更新到序列列表中,减少等待时间,增加了可用性。
3.3
3x
本帖最后由 dos时代菜鸟 于 2018-5-31 12:27 编辑
窄口牛 发表于 2018-5-31 11:31
3.3
3x
多谢测试,
这是 pe 中的效果么? 看来 3.3 的思路 适应性更强一些,不过也出现了 文本流截取错位的情况。
我把 3.3 改了一点儿。也不知道 能 纠正不。
能不能 运行 diskpart
select disk 2
detail disk
list part
看看 原始数据 列表是啥样子的呢?
dos时代菜鸟 发表于 2018-5-31 11:56
多谢测试,
这是 pe 中的效果么? 看来 3.3 的思路 适应性更强一些,不过也出现了 文本流截取错位的 ...
可以在一楼直接反一下批处理脚本,把原始数据作为日志输出为文件,发上来你好分析。
不过dos区人少,也许做也是白做。 .找到 Vol#0
.找到 Vol#1
.找到 Vol#2
.找到 Vol#3
.找到 Vol#4
.找到 Vol#5
.找到 Vol#6
这些错误信息屏蔽掉吧。看着干净些。 hd3x.cmd 第15行 丢了一个 "~" 已经修正
hd3.3.cmd 也做了小的改动,不知道 效果真么样。
两个都可以了
显示的时候序号补零吧 本帖最后由 dos时代菜鸟 于 2018-5-31 13:03 编辑
窄口牛 发表于 2018-5-31 12:36
两个都可以了
显示的时候序号补零吧
已经 补零 在一楼 ,补 空格是不是 比 补零 更好一些? freesoft00 发表于 2018-5-31 12:21
.找到 Vol#0
.找到 Vol#1
.找到 Vol#2
这不是错误信息,是 脚本运行过程中 用来 了解运行 进度用的,要不然,时间长了,还以为程序 死循环了呢。 本帖最后由 窄口牛 于 2018-5-31 13:34 编辑
都行,无所谓吧
dos时代菜鸟 发表于 2018-5-31 13:00
已经 补零 在一楼 ,补 空格是不是 比 补零 更好一些?
补充零觉得不好。这个不是批量改名,为了整齐补零。磁盘卷就是那样的,就那些显示就可以。
实在不行就补充空格也行。 本帖最后由 dos时代菜鸟 于 2018-5-31 22:47 编辑
freesoft00 发表于 2018-5-31 13:35
补充零觉得不好。这个不是批量改名,为了整齐补零。磁盘卷就是那样的,就那些显示就可以。
实在不行就补 ...
我 刚又 弄了个 可以获取 更多信息的 ,明显运行效率 降低了,探测下图 结构 几个硬盘 的分区结构 用时 20秒。
在一楼
dos时代菜鸟 发表于 2018-5-31 22:08
我 刚又 弄了个 可以获取 更多信息的 ,明显运行效率 降低了,探测下图 结构 几个硬盘 的分区结构 用时 2 ...
速度上差不多感觉。
前两个是走完
.找到 Vol#0
.找到 Vol#1
.找到 Vol#2
.找到 Vol#3
.找到 Vol#4
.找到 Vol#5
.找到 Vol#6
整体出现磁盘和分区列表。
第三个是一个一个出现磁盘分区列表。
整体时间上感觉差不多。
第三个确实信息更丰富一些。作为磁盘分区列表来说也比较好,好判断那个磁盘哪个分区。感觉这个挺好的。 freesoft00 发表于 2018-6-1 05:12
速度上差不多感觉。
前两个是走完
呵呵,就是 第三个 是用 中文 单词做 索引查询。
不过效果上看,还是可以的。
轻微改动 就可以 用到 批处理里面了。 我的defghijk是固定盘符,和卷标对应,新的或者别的系统会把e变d,fghijk依序,我需要一个按照卷标来重新挂载的批处理。 dos时代菜鸟 发表于 2018-6-1 08:27
呵呵,就是 第三个 是用 中文 单词做 索引查询。
不过效果上看,还是可以的。
如果想有普遍的适应性,可以把关键词设置为英、简体、繁体。
批处理开始先查询当前系统的语言,然后使用不同的关键词作为搜索。
这样简体、繁体、英文系统都可以使用了。
国内普通的就这三种系统用户。 窄口牛 发表于 2018-6-1 09:34
我的defghijk是固定盘符,和卷标对应,新的或者别的系统会把e变d,fghijk依序,我需要一个按照卷标来重新挂 ...
你这个属于个性化应用,不带有普遍性。 好东西。good 本帖最后由 dos时代菜鸟 于 2018-6-1 13:29 编辑
这个是 用 hd3y2.cmd 的列表模式 改装的 交互式 装卸 分区盘符 的脚本样例。 在1楼
考虑到 分区盘符变更后 重新生成 列表数据会 再一次 慢吞吞的完成,所以 增加了装卸操作完 自动刷新 功能。这样,生成一次 分区序列列表,以后 操作上,不会重复 全部分区的信息搜索,只是将新操作的分区的新信息更新到序列列表中,减少等待时间,增加了可用性。
有了这个 分区序列 列表,以后 就还可以 扩展功能,比如 分区的 删除,创建,调整大小,硬盘的挂起,分区的装卸 等等功能,可能没时间弄,不过 弄个这个,就算 抛砖吧,能不能引来玉 就不知道了。 xuexixuexi 改进 hd3y3.cmd 支持显示 硬盘分区结构是mbr 还是 gpt ,显示 主分区 是否激活,修正 无盘符 卷 盘符位置 没有* 的漏洞。
同时 更新了 盘符装卸 脚本,
具体下载 到 1楼
正在考虑 以这个 hd3y3.cmd 的分区序列 表 做界面,弄个diskpart 的 外壳脚本。估计要 慢慢来了。 dos时代菜鸟 发表于 2018-6-2 00:21
改进 hd3y3.cmd 支持显示 硬盘分区结构是mbr 还是 gpt ,显示 主分区 是否激活,修正 无盘符 卷 盘符位置 ...
硬盘分区序列 DiskPart=F:,6.1.7601 脚本:F:
---------------------------------------------------------------------------------------------------
Disk#0 931GB MBR 基本 联机(WDC WD10ASD-238989 ATA Device)
NumVolHD:P LTR Fs Size Label 活动_类型_状态_信息_偏移
------- --------- --------------- ----------- ------------------------
1 0 0:1 * NTFS 2000 MB 是_主要_正常_系统 1024KB
2 1 0:2 D NTFS 68 GB 否_主要_正常_ 2001MB
3 2 0:3 E NTFS 97 GB 否_主要_正常_ 70GB
4 * 0:0 * 763 GB 否_扩展的_ 167GB
5 3 0:4 F NTFS 195 GB 否_逻辑_正常_页面文件 167GB
6 4 0:5 G NTFS 195 GB 否_逻辑_正常_ 363GB
7 5 0:6 H NTFS 177 GB 否_逻辑_正常_ 558GB
8 6 0:7 I NTFS 97 GB 否_逻辑_正常_ 736GB
9 7 0:8 J NTFS 97 GB 否_逻辑_正常_ 833GB
Disk#1 30GB MBR 动态 联机(Msft Virtual Disk SCSI Disk Device)
NumVolHD:P LTR Fs Size Label 活动_类型_状态_信息_偏移
------- --------- --------------- ----------- ------------------------
10 8 1:1 C NTFS 29 GB 否_主要_正常_启动 1024KB
--------------------------------------------------------------------------------------------------
请输入待处理卷对应的序号(Num):1-12,r刷新,x退出: 这样是不是更好?
磁盘信息添加了基本和动态。
硬盘分区序列 DiskPart=F:,6.1.7601 脚本:F:
---------------------------------------------------------------------------------------------------
NumVolHD:P LTR Fs Size Label 活动_类型_状态_信息_偏移
1 ------ 0----------------------------------------------------- Disk#0 931GB MBR 联机(WDC WD10ASD-238989 ATA Device)
2 0 0:1 * NTFS 2000 MB 是_主要_正常_系统 1024KB
3 1 0:2 D NTFS 68 GB 否_主要_正常_ 2001MB
4 2 0:3 E NTFS 97 GB 否_主要_正常_ 70GB
5 * 0:0 * 763 GB 否_扩展的_ 167GB
6 3 0:4 F NTFS 195 GB 否_逻辑_正常_页面文件 167GB
7 4 0:5 G NTFS 195 GB 否_逻辑_正常_ 363GB
8 5 0:6 H NTFS 177 GB 否_逻辑_正常_ 558GB
9 6 0:7 I NTFS 97 GB 否_逻辑_正常_ 736GB
10 7 0:8 J NTFS 97 GB 否_逻辑_正常_ 833GB
11 ------ 1----------------------------------------------------- Disk#1 30GB MBR 联机(Msft Virtual Disk SCSI Disk Device)
12 8 1:1 C NTFS 29 GB 否_主要_正常_启动 1024KB
--------------------------------------------------------------------------------------------------
请输入待处理卷对应的序号(Num):1-12,r刷新,x退出:
输入卷序号。横线处就是磁盘信息对应的行也分配了序号。而真实的卷只有10个。 diskpart常用的操作。
创建分区,删除分区,全部删除分区。激活分区。分配和删除盘符
对vhd/vhdx虚拟磁盘的操作。创建,装载卸载,创建差异,合并差异,扩容,查看vhd文件信息。 freesoft00 发表于 2018-6-2 10:16
硬盘分区序列 DiskPart=F:,6.1.7601 脚本:F:
------ ...
那是为以后留的,比如要创建分区,就要选硬盘。 dos时代菜鸟 发表于 2018-6-4 00:11
那是为以后留的,比如要创建分区,就要选硬盘。
ok
知道了。
我说怎么磁盘要留出来行号。原来是预留对磁盘做操作的。
好。 freesoft00 发表于 2018-6-2 10:12
硬盘分区序列 DiskPart=F:,6.1.7601 脚本:F:
---- ...
这个可以有 ,关键我不知道 这个信息 在信息流的什么位置,我也没有 测试环境啊。就先不考虑了吧。
dos时代菜鸟 发表于 2018-6-4 13:16
这个可以有 ,关键我不知道 这个信息 在信息流的什么位置,我也没有 测试环境啊。就先不考虑了吧。
DISKPART> list disk
磁盘 ###状态 大小 可用 DynGpt
-----------------------------------------
* 磁盘 0 联机 931 GB5120 KB
磁盘 1 联机 30 GB1024 KB
dyn那一列如果有*号就是动态,没有*号就是基本,gpt那一列有*号就是gpt分区的磁盘,没有*号就是mbr分区的磁盘。 freesoft00 发表于 2018-6-4 16:06
DISKPART> list disk
磁盘 ###状态 大小 可用 DynGpt
就是 要明确是第几个字符
页:
[1]
2