dos时代菜鸟 发表于 2018-5-31 11:14:57

关于用 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 的列表模式 改装的 交互式 装卸 分区盘符 的脚本样例。
考虑到 分区盘符变更后 重新生成 列表数据会 再一次 慢吞吞的完成,所以 增加了装卸操作完 自动刷新 功能。这样,生成一次 分区序列列表,以后 操作上,不会重复 全部分区的信息搜索,只是将新操作的分区的新信息更新到序列列表中,减少等待时间,增加了可用性。








窄口牛 发表于 2018-5-31 11:31:20

3.3

3x

dos时代菜鸟 发表于 2018-5-31 11:56:39

本帖最后由 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
看看 原始数据 列表是啥样子的呢?

freesoft00 发表于 2018-5-31 12:18:02

dos时代菜鸟 发表于 2018-5-31 11:56
多谢测试,

这是 pe 中的效果么? 看来 3.3 的思路 适应性更强一些,不过也出现了 文本流截取错位的 ...

可以在一楼直接反一下批处理脚本,把原始数据作为日志输出为文件,发上来你好分析。
不过dos区人少,也许做也是白做。

freesoft00 发表于 2018-5-31 12:21:44

.找到 Vol#0
.找到 Vol#1
.找到 Vol#2
.找到 Vol#3
.找到 Vol#4
.找到 Vol#5
.找到 Vol#6
这些错误信息屏蔽掉吧。看着干净些。

dos时代菜鸟 发表于 2018-5-31 12:30:35

hd3x.cmd 第15行 丢了一个 "~" 已经修正
hd3.3.cmd 也做了小的改动,不知道 效果真么样。

窄口牛 发表于 2018-5-31 12:36:02



两个都可以了
显示的时候序号补零吧

dos时代菜鸟 发表于 2018-5-31 13:00:59

本帖最后由 dos时代菜鸟 于 2018-5-31 13:03 编辑

窄口牛 发表于 2018-5-31 12:36
两个都可以了
显示的时候序号补零吧

已经 补零 在一楼 ,补 空格是不是 比 补零 更好一些?

dos时代菜鸟 发表于 2018-5-31 13:20:46

freesoft00 发表于 2018-5-31 12:21
.找到 Vol#0
.找到 Vol#1
.找到 Vol#2


这不是错误信息,是 脚本运行过程中 用来 了解运行 进度用的,要不然,时间长了,还以为程序 死循环了呢。

窄口牛 发表于 2018-5-31 13:21:10

本帖最后由 窄口牛 于 2018-5-31 13:34 编辑

都行,无所谓吧

freesoft00 发表于 2018-5-31 13:35:40

dos时代菜鸟 发表于 2018-5-31 13:00
已经 补零 在一楼 ,补 空格是不是 比 补零 更好一些?

补充零觉得不好。这个不是批量改名,为了整齐补零。磁盘卷就是那样的,就那些显示就可以。
实在不行就补充空格也行。

dos时代菜鸟 发表于 2018-5-31 22:08:34

本帖最后由 dos时代菜鸟 于 2018-5-31 22:47 编辑

freesoft00 发表于 2018-5-31 13:35
补充零觉得不好。这个不是批量改名,为了整齐补零。磁盘卷就是那样的,就那些显示就可以。
实在不行就补 ...
我 刚又 弄了个 可以获取 更多信息的 ,明显运行效率 降低了,探测下图 结构 几个硬盘 的分区结构 用时 20秒。
在一楼

freesoft00 发表于 2018-6-1 05:12:14

dos时代菜鸟 发表于 2018-5-31 22:08
我 刚又 弄了个 可以获取 更多信息的 ,明显运行效率 降低了,探测下图 结构 几个硬盘 的分区结构 用时 2 ...

速度上差不多感觉。

前两个是走完
.找到 Vol#0
.找到 Vol#1
.找到 Vol#2
.找到 Vol#3
.找到 Vol#4
.找到 Vol#5
.找到 Vol#6
整体出现磁盘和分区列表。

第三个是一个一个出现磁盘分区列表。

整体时间上感觉差不多。

第三个确实信息更丰富一些。作为磁盘分区列表来说也比较好,好判断那个磁盘哪个分区。感觉这个挺好的。

dos时代菜鸟 发表于 2018-6-1 08:27:17

freesoft00 发表于 2018-6-1 05:12
速度上差不多感觉。

前两个是走完


呵呵,就是 第三个 是用 中文 单词做 索引查询。

不过效果上看,还是可以的。
轻微改动 就可以 用到 批处理里面了。

窄口牛 发表于 2018-6-1 09:34:33

我的defghijk是固定盘符,和卷标对应,新的或者别的系统会把e变d,fghijk依序,我需要一个按照卷标来重新挂载的批处理。

freesoft00 发表于 2018-6-1 09:51:32

dos时代菜鸟 发表于 2018-6-1 08:27
呵呵,就是 第三个 是用 中文 单词做 索引查询。

不过效果上看,还是可以的。


如果想有普遍的适应性,可以把关键词设置为英、简体、繁体。
批处理开始先查询当前系统的语言,然后使用不同的关键词作为搜索。
这样简体、繁体、英文系统都可以使用了。
国内普通的就这三种系统用户。

freesoft00 发表于 2018-6-1 09:52:25

窄口牛 发表于 2018-6-1 09:34
我的defghijk是固定盘符,和卷标对应,新的或者别的系统会把e变d,fghijk依序,我需要一个按照卷标来重新挂 ...

你这个属于个性化应用,不带有普遍性。

ai20110304 发表于 2018-6-1 10:06:17

好东西。good

dos时代菜鸟 发表于 2018-6-1 13:26:53

本帖最后由 dos时代菜鸟 于 2018-6-1 13:29 编辑

这个是 用 hd3y2.cmd 的列表模式 改装的 交互式 装卸 分区盘符 的脚本样例。 在1楼
考虑到 分区盘符变更后 重新生成 列表数据会 再一次 慢吞吞的完成,所以 增加了装卸操作完 自动刷新 功能。这样,生成一次 分区序列列表,以后 操作上,不会重复 全部分区的信息搜索,只是将新操作的分区的新信息更新到序列列表中,减少等待时间,增加了可用性。

有了这个 分区序列 列表,以后 就还可以 扩展功能,比如 分区的 删除,创建,调整大小,硬盘的挂起,分区的装卸 等等功能,可能没时间弄,不过 弄个这个,就算 抛砖吧,能不能引来玉 就不知道了。

14928806 发表于 2018-6-1 19:32:48

xuexixuexi

dos时代菜鸟 发表于 2018-6-2 00:21:09

改进 hd3y3.cmd 支持显示 硬盘分区结构是mbr 还是 gpt ,显示 主分区 是否激活,修正 无盘符 卷 盘符位置 没有* 的漏洞。

同时 更新了 盘符装卸 脚本,

具体下载 到 1楼

正在考虑 以这个 hd3y3.cmd 的分区序列 表 做界面,弄个diskpart 的 外壳脚本。估计要 慢慢来了。

freesoft00 发表于 2018-6-2 10:12:46

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退出:

freesoft00 发表于 2018-6-2 10:13:50

这样是不是更好?
磁盘信息添加了基本和动态。

freesoft00 发表于 2018-6-2 10:16:19


                        硬盘分区序列 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个。

freesoft00 发表于 2018-6-2 10:20:50

diskpart常用的操作。
创建分区,删除分区,全部删除分区。激活分区。分配和删除盘符
对vhd/vhdx虚拟磁盘的操作。创建,装载卸载,创建差异,合并差异,扩容,查看vhd文件信息。

dos时代菜鸟 发表于 2018-6-4 00:11:24

freesoft00 发表于 2018-6-2 10:16
硬盘分区序列 DiskPart=F:,6.1.7601                        脚本:F:
------ ...

那是为以后留的,比如要创建分区,就要选硬盘。

freesoft00 发表于 2018-6-4 00:52:35

dos时代菜鸟 发表于 2018-6-4 00:11
那是为以后留的,比如要创建分区,就要选硬盘。

ok
知道了。
我说怎么磁盘要留出来行号。原来是预留对磁盘做操作的。
好。

dos时代菜鸟 发表于 2018-6-4 13:16:09

freesoft00 发表于 2018-6-2 10:12
硬盘分区序列 DiskPart=F:,6.1.7601                        脚本:F:
---- ...

这个可以有 ,关键我不知道 这个信息 在信息流的什么位置,我也没有 测试环境啊。就先不考虑了吧。

freesoft00 发表于 2018-6-4 16:06:59

dos时代菜鸟 发表于 2018-6-4 13:16
这个可以有 ,关键我不知道 这个信息 在信息流的什么位置,我也没有 测试环境啊。就先不考虑了吧。

DISKPART> list disk

磁盘 ###状态         大小   可用   DynGpt
-----------------------------------------
* 磁盘 0    联机            931 GB5120 KB
磁盘 1    联机               30 GB1024 KB

dyn那一列如果有*号就是动态,没有*号就是基本,gpt那一列有*号就是gpt分区的磁盘,没有*号就是mbr分区的磁盘。

dos时代菜鸟 发表于 2018-6-4 17:14:54

freesoft00 发表于 2018-6-4 16:06
DISKPART> list disk

磁盘 ###状态         大小   可用   DynGpt


就是 要明确是第几个字符
页: [1] 2
查看完整版本: 关于用 diskpart 获取硬盘分区序列的 两个 脚本,用来明确第n硬盘第m分区及其对应...