无忧启动论坛

标题: diskpart 外壳脚本 简体中文版和英文版 Ver9.0 [打印本页]

作者: dos时代菜鸟    时间: 2018-6-4 13:20
标题: diskpart 外壳脚本 简体中文版和英文版 Ver9.0
本帖最后由 dos时代菜鸟 于 2021-11-15 23:08 编辑

适用win7及以上版本。

本帖所涉及脚本已经 由 pecmd 2012 脚本取代,请移步
http://bbs.wuyou.net/forum.php?m ... &extra=page%3D1


x9.08
DP-Script-X9.12.8.7z (18.59 KB, 下载次数: 347)
采用新的 导入分区序列的算法,只需 3次调用 diskpart 就可以探测全部分区信息。
改进文本流截取,以便使一个脚本模板适应两个语言环境。
暂时还是分别提供两个语言的脚本,而 不想做成词典,以方便中文版维护。
修复 可用空间盘符探测 相关代码


使用上还是要注意
分区结构形式 转换前  是必须 要清空分区的,
gtp硬盘上是不能 设置活动分区的。
删除扩展分区前,必须先删除扩展分区里的逻辑分区。

脚本会 在 所在位置 临时生成 文件,所以 不能 对 脚本所在 盘进行操作,也不应该对正在运行的当前系统 所在盘进行操作。
附件中 包含了 win7 的 diskpart.exe 可以删除。
DP_Script-8.55.7z (79.01 KB, 下载次数: 310)

8.61 测试版 DP_SCRIPT----8.61.7z (80.38 KB, 下载次数: 49)
改进 8.60 中由于没有预设 vol_free 占位 导致当 detail vol  无法获取 vol_free 时free/size 字段错位的问题。
增加可以 探测到 卷 的可用空间,
尝试探测 不在 list part 列表中的 卷的信息,并将其信息加入列表,因为其没有对应的 part ,所以只能对其进行 格式化 和分配 盘符
某些 u盘 select disk 后自动将  part 选中为焦点,导致 无法探测 该 part 信息,针对这种情况,做了适量调整,但愿能 更多的识别这样的 u盘。











作者: dos时代菜鸟    时间: 2018-6-4 13:22
本帖最后由 dos时代菜鸟 于 2018-6-4 14:15 编辑

考虑到 操作 后 要进行 列表 信息更新,所以,相较  hd3y.cmd ,内部 脚本 区段 进行了 调整。

发现 删除 、创建 卷分区以后,卷 vol 号 可能发生混乱错位,但,程序不会 调用 列表中的 这个 vol ,只是用于区分 改卷是否支持 分配盘符。用户可以通过 手动  刷新列表 来纠正 这个显示错误。

作者: holley2008    时间: 2018-6-4 15:46
支持楼主授人以渔的行为!
作者: freesoft00    时间: 2018-6-4 16:19
支持一下。
作者: nttwqz    时间: 2018-6-4 16:25
真有精力,显示信息够详细!

我已经变懒了~

也可能我一直都懒
作者: dos时代菜鸟    时间: 2018-6-4 21:54
本帖最后由 dos时代菜鸟 于 2018-6-4 22:04 编辑

轻微改动了一下
可以显示 vhd 盘对应的文件名,可以显示 vhd 是否可扩展,可以显示 disk 的  Dyn 性质。
在 1楼
dp-script-7.84.cmd

感谢  freesoft00 提供的数据文本。

另外 , vhd 方面的 操作,可能要 单独 另写 脚本。这里暂时 先 不考虑 加入 vhd 相关的功能。
作者: ai20110304    时间: 2018-6-4 22:01
好东西的分享
作者: freesoft00    时间: 2018-6-4 22:03
dos时代菜鸟 发表于 2018-6-4 21:54
轻微改动了一下
可以显示 vhd 盘对应的文件名,可以显示 vhd 是否可扩展,可以显示 disk 的  Dyn 性质。
...

vhd单独也可以。要不要操作的项目太多了。
磁盘分区的单独一个。
vhd操作的如果 兄弟写可以单独一个。
作者: dos时代菜鸟    时间: 2018-6-4 22:07
freesoft00 发表于 2018-6-4 22:03
vhd单独也可以。要不要操作的项目太多了。
磁盘分区的单独一个。
vhd操作的如果 兄弟写可以单独一个。

还是要 请 帮忙 测试下  dyn 方面 是否能够 准确 定位。
作者: freesoft00    时间: 2018-6-4 22:22
dos时代菜鸟 发表于 2018-6-4 22:07
还是要 请 帮忙 测试下  dyn 方面 是否能够 准确 定位。


                          硬盘分区序列                                  DiskPart:D:_6.1.7601,脚本:D:
---------------------------------------------------------------------------------------------------------
  Num  Vol  HD:P   LTR   Fs       Size   Label         类型_偏移_活动_状态_信息
    1 ----   0    ----  -----  --------  ------------  Disk#0~0B/30GB~Bas~MBR~联机~~(VMware, VMware Virtual S SCSI Disk Device)
    2    2   0:1    C   NTFS      20 GB  系统盘符C         主要.1024KB.是.正常.系统
    3    3   0:2    D   NTFS       9 GB                主要.20GB.否.正常.
    4 ----   1    ----  -----  --------  ------------  Disk#1~0B/20GB~Dyn~MBR~联机~~(VMware, VMware Virtual S SCSI Disk Device)
    5    *   1:2    *            992 KB                动态数据.31KB.否
    6    0   1:1    L   FAT32     19 GB                动态数据.1024KB.是.正常.
    7 ----   2    ----  -----  --------  ------------  Disk#2~0B/1200GB~Bas~GPT~联机~~(VMware, VMware Virtual S SCSI Disk Device)
    8    8   2:1    *   NTFS     500 MB                恢复.1024KB.晕.正常.已隐藏
    9    9   2:2    *   FAT32    100 MB                系统.501MB.晕.正常.已隐藏
   10    *   2:3    *            128 MB                保留.601MB.晕
   11    4   2:4    H   NTFS      50 GB  GPT磁盘的第一个分区   主要.729MB.晕.正常.
   12    5   2:5    I   NTFS     200 GB  movie         主要.50GB.晕.正常.
   13    6   2:6    J   NTFS     200 GB                主要.250GB.晕.正常.
   14    7   2:7    K   NTFS     749 GB                主要.450GB.晕.正常.
---------------------------------------------------------------------------------------------------------
---当前焦点:Num=  ;  HD:P=

---主菜单------------------------------------------------------------------------------------------------
   L.装卸盘符              D.删除分区                  C.创建分区               F.格式化分区
   S.清除某硬盘所有分区    T.初始化某硬盘分区形式      V.活动分区
   R.刷新列表              X.退出
---------------------------------------------------------------------------------------------------------
---请选择一个操作:___
作者: freesoft00    时间: 2018-6-4 22:23
第二个磁盘是动态磁盘,显示出来了。
作者: dos时代菜鸟    时间: 2018-6-4 22:27
freesoft00 发表于 2018-6-4 22:23
第二个磁盘是动态磁盘,显示出来了。

多谢支持。多谢测试。
作者: freesoft00    时间: 2018-6-4 22:27

                          硬盘分区序列                                  DiskPart:D:_6.1.7601,脚本:D:
---------------------------------------------------------------------------------------------------------
  Num  Vol  HD:P   LTR   Fs       Size   Label         类型_偏移_活动_状态_信息
    1 ----   0    ----  -----  --------  ------------  Disk#0~0B/30GB~Bas~MBR~联机~~(VMware, VMware Virtual S SCSI Disk Device)
    2    8   0:1    C   NTFS      20 GB  系统盘符C         主要.1024KB.是.正常.系统
    3    9   0:2    D   NTFS       9 GB                主要.20GB.否.正常.
    4 ----   1    ----  -----  --------  ------------  Disk#1~9GB/20GB~Dyn~MBR~联机~~(VMware, VMware Virtual S SCSI Disk Device)
    5    *   1:1    *             19 GB                动态数据.31KB.否
    6 ----   2    ----  -----  --------  ------------  Disk#2~0B/1200GB~Dyn~GPT~联机~~(VMware, VMware Virtual S SCSI Disk Device)
    7    5   2:1    *   NTFS     500 MB                恢复.1024KB.晕.正常.已隐藏
    8    6   2:2    *   FAT32    100 MB                系统.501MB.晕.正常.已隐藏
    9    *   2:8    *           1024 KB                动态保留.601MB.晕
   10    *   2:3    *            127 MB                保留.602MB.晕
   11    3   2:4    H   NTFS    1199 GB  GPT磁盘的第一个分区   动态数据.729MB.晕.正常.
---------------------------------------------------------------------------------------------------------
---当前焦点:Num=  ;  HD:P=

---主菜单------------------------------------------------------------------------------------------------
   L.装卸盘符              D.删除分区                  C.创建分区               F.格式化分区
   S.清除某硬盘所有分区    T.初始化某硬盘分区形式      V.活动分区
   R.刷新列表              X.退出
---------------------------------------------------------------------------------------------------------
---请选择一个操作:___
作者: freesoft00    时间: 2018-6-4 22:30
第二和第三磁盘是动态。下面是第三磁盘详细信息。动态磁盘无法显示分区盘符。这个list part就是无法显示的那没有办法。动态磁盘是动态卷,只能在卷列表中显示盘符。

VMware, VMware Virtual S SCSI Disk Device
磁盘 ID: {FAEEC137-E424-414F-AD2E-24E6E2D3AC4E}
类型   : SAS
状态 : 联机
路径   : 0
目标 : 2
LUN ID : 0
位置路径 : PCIROOT(0)#PCI(1500)#PCI(0000)#SAS(P00T02L00)
当前只读状态: 否
只读: 否
启动磁盘: 否
页面文件磁盘: 否
休眠文件磁盘: 否
故障转储磁盘: 否
群集磁盘  : 否

  卷 ###      LTR  标签         FS     类型        大小     状态       信息
  ----------  ---  -----------  -----  ----------  -------  ---------  --------
  卷     0     K                NTFS   简单           749 GB  正常

  卷     1     J                NTFS   简单           200 GB  正常

  卷     2     I   movie        NTFS   简单           200 GB  正常

  卷     3     H   GPT磁盘的第一个分区  NTFS   简单            50 GB  正常

  卷     5                      NTFS   磁盘分区         500 MB  正常         已
隐藏
  卷     6                      FAT32  磁盘分区         100 MB  正常         已
隐藏
作者: freesoft00    时间: 2018-6-4 22:32
dos时代菜鸟 发表于 2018-6-4 22:27
多谢支持。多谢测试。

客气了。
多谢的是你,分享了不少好东西给大家。
作者: dos时代菜鸟    时间: 2018-6-4 23:58
本帖最后由 dos时代菜鸟 于 2018-6-5 00:03 编辑

可能是 动态磁盘 卷 无法 作为 part 进行操作,它可能被关联成了 其他分区的一部分 。
你看 那几个卷 的size 相加  的结果。


刚更新了下,支持 对 分区调整大小了。在1楼。

作者: dos时代菜鸟    时间: 2018-6-5 10:48
本帖最后由 dos时代菜鸟 于 2018-6-5 12:32 编辑

改进了一下 显示 行溢出 的问题,增加字符串 阉割 函数,如果字符串 长度超过指定值,就只显示其 前后两端 的部分内容。
增加了 一个 特别说明
改进 刷新 模块

更新 已经 放到一楼


唉,发现 阉割字符串 函数 搞复杂了,不用计算字符串长度 再 进行比较,可以直接 截取字符串 指定位置字符,如果该位置没有字符,就说明 字符串没有那么长。
不改了,先这么着吧。

作者: dos时代菜鸟    时间: 2018-6-5 13:48
可能是 太困了,居然 把一个  公用变量 给 “及时”的清理的。重新 更新下,Num 是 公用变量。

http://wuyou.net/forum.php?mod=a ... 8MTE5OHw0MDk0NTU%3D


先到这里吧,休息休息去了。

作者: dos时代菜鸟    时间: 2018-6-5 14:39
十分抱歉,今日太困,不能再玩了。
中午更新 几个版本 都有小问题,请 下载的 重新下载。 7.93 版本,在一楼。



作者: liangyi    时间: 2018-6-5 17:46

楼主提个小意见,就是第一列编号这个位置能不能改为只对磁盘进行编号排序呢?现在是磁盘和分区混在一起编号排序的
作者: dos时代菜鸟    时间: 2018-6-5 17:58
liangyi 发表于 2018-6-5 17:46
楼主提个小意见,就是第一列编号这个位置能不能改为只对磁盘进行编号排序呢?现在是磁盘和分区混在一起编 ...

创新分区需要选硬盘
作者: 双响炮    时间: 2018-6-5 18:02
太牛了,这几天自己快被分区的批处理搞疯了
作者: dos时代菜鸟    时间: 2018-6-5 18:03
liangyi 发表于 2018-6-5 17:46
楼主提个小意见,就是第一列编号这个位置能不能改为只对磁盘进行编号排序呢?现在是磁盘和分区混在一起编 ...

创建分区,改变硬盘分区模式,都需要选择硬盘进行操作,硬盘分区删除以后,也要对硬盘资讯进行刷新,如果想手动刷新某个硬盘的信息,也需要选择硬盘,很多针对硬盘的操作都要求用户选择硬盘,硬盘没有编号,不行,会很麻烦。
作者: liangyi    时间: 2018-6-5 18:11
dos时代菜鸟 发表于 2018-6-5 18:03
创建分区,改变硬盘分区模式,都需要选择硬盘进行操作,硬盘分区删除以后,也要对硬盘资讯进行刷新,如果 ...

可能楼主误解我要表达的意思了,我是说能不能实现第一列只对硬盘编号显示,而第一列不显示分区编号
作者: dos时代菜鸟    时间: 2018-6-5 19:11
liangyi 发表于 2018-6-5 18:11
可能楼主误解我要表达的意思了,我是说能不能实现第一列只对硬盘编号显示,而第一列不显示分区编号

那有怎么选择分区呢?
作者: freesoft00    时间: 2018-6-5 19:18
dos时代菜鸟 发表于 2018-6-5 19:11
那有怎么选择分区呢?


估计他的意思是第一列只显示磁盘序号,其它都是空的。
第二列或者其它列再显示分区列表。
分开显示。
感觉不是太有必要。
因为有一列是磁盘+分区的列表
作者: dos时代菜鸟    时间: 2018-6-5 19:28
本帖最后由 dos时代菜鸟 于 2018-6-5 21:33 编辑
freesoft00 发表于 2018-6-5 19:18
估计他的意思是第一列只显示磁盘序号,其它都是空的。
第二列或者其它列再显示分区列表。
分开显示。 ...
已经修改 main_list 段,在不影响效率的前提下 ,改了一下 显示效果。


嗯,这个要这样理解,有臭美嫌疑啊。因为脚本里面,以后可能还会加东西,涉及到对列表文本流中特定字符的定位,统一位置,统一格式有利于脚本编写和运行效率。


作者: dos时代菜鸟    时间: 2018-6-5 19:30
本帖最后由 dos时代菜鸟 于 2018-6-5 21:35 编辑
dos时代菜鸟 发表于 2018-6-5 19:28
嗯,这个要这样理解,确实有为了好看不要效率的嫌疑,因为脚本里面,以后可能还会加东西,涉及到对列表文 ...


一个check.l 函数解决各种情况的用户录入选择,有利于提高效率。

可以考虑 用 main_list 段的程序 改变显示输出内容。而不改变  原始 列表文件。
作者: dos时代菜鸟    时间: 2018-6-5 21:08
本帖最后由 dos时代菜鸟 于 2018-6-5 21:46 编辑

看看,这样显示 行不行 ?

感觉 在输入 Num 的时候 能容易 检索一点儿吧。不知道 liangyi 是不是这个意思。我这几天睡得太晚,理解能力都降低了。

另外,如果 还是出现 有 行显示溢出 折行的现象,可以 在 主菜单 状态下 将 cmd 窗口最大化,然后在回车,就可以刷新显示。


DP_script-temp.zip (5.98 KB, 下载次数: 1)
修改 Main_list 段内容入下,可实现 上图 效果。
main_list 段 是专门负责 将  partlist.txt 的内容 以一定的格式显示 的函数,因为 不需要修改 partlist.txt 本身,所以 可以随意 定制显示列表。但是如果太复杂,也会影响 运算效率。
下面 代码 没有变动 太大,应该不会影响效率。

  1. :MAIN_list
  2. rem 考虑cmd窗口空间,vhd 文件信息可能被阉割。
  3. cls
  4. echo.
  5. echo                           硬盘分区序列                                  DiskPart:!DPD!_!dpver!,脚本:%~d0
  6. echo ---------------------------------------------------------------------------------------------------------
  7. echo  HDn  Pn  Vol  HD:P_  LTR   Fs       Size   Label         类型_偏移_活动_状态_信息
  8. for %%a in (lx005 disk_name2 disk_lx2) do set "%%a="
  9. for /f "skip=1 delims=" %%x in ('type !list0!') do (
  10.   set "lx005=%%x"
  11.   for /f "tokens=1,2,8" %%a in ("%%x") do (
  12.     if not "%%b"=="----" (
  13.       echo    ^|!lx005:~1!
  14.     ) else (
  15.       for /f "tokens=1,2 delims=(" %%h in ("!lx005:~55!") do (
  16.         set "disk_lx2=%%h"
  17.         call :str_mid "(%%~i" 38 &  SET "disk_name2=!str_mid!" & set "str_mid="
  18.       )
  19.       echo !lx005:~1,4! ----!lx005:~6,48! !disk_lx2!!disk_name2!
  20.     )
  21.   )
  22. )
  23. echo ---------------------------------------------------------------------------------------------------------
  24. for %%a in (lx005 disk_name2 disk_lx2) do set "%%a="
  25. echo ---当前焦点:Num=!n!  ;  HD:P=!hdp2!

  26. EXIT /B

复制代码



作者: liangyi    时间: 2018-6-5 22:17
本帖最后由 liangyi 于 2018-6-5 22:19 编辑
dos时代菜鸟 发表于 2018-6-5 19:11
那有怎么选择分区呢?





其实我想表达的是,在7.97版的基础上能否这样调整,这样会不会辨识好点,编程小白+强迫症只能给这些意见,无法提出技术类的建议,楼主莫怪
作者: dos时代菜鸟    时间: 2018-6-5 22:34
本帖最后由 dos时代菜鸟 于 2018-6-5 23:36 编辑
liangyi 发表于 2018-6-5 22:17
其实我想表达的是,在7.97版的基础上能否这样调整,这样会不会辨识好点,编程小白+强迫症只能给 ...

按照你的 列表模式,如果 要删除 一个 没有 vol 号码的 分区,你让用户输入什么 定位到 它?
如果 扩展分区 hd:p 都用 * 了,你让程序 怎么定位 这个 扩展分区的位置,当要删除 这个扩展分区的时候 怎么办?


hd:p  用于表示 分区 或 硬盘 的特征的,没有 冒号表示 是一个盘,有冒号 表示是 第几个硬盘的第几个分区。 是不能为  * 的
vol 是系统给的,如果为 * 说明 是  分区 却不能被  win 加载盘符,也就是 被脚本 识别为 part ,比如 linux 下的 分区
ltr 也是系统给的 ,如果为 * 说明 现在还没 分配到盘符,如果 是系统不能加载 的分区,肯定 ltr=*
Num 是 脚本按顺序分配的 序列表中唯一 标识号,没有重叠 又 易于通过 小键盘输入。在脚本中 可以快速通过 Num 号码定位用户所选并明确 焦点特征。

你说的 目的 我明白了,程序中也 做了 拦劫处理,如果 你 选择的 焦点 不支持你要做的动作,就 退回。

很多时候,人们都习惯了 输入 焦点 天然标识号,但是 往往与其他 焦点 标识号重叠,不唯一,或者 较为复杂。或者你的 焦点 没有天然 标识
比如,
当要输入 分区或者卷 的时候 往往习惯输入 系统给定的 vol 或者盘符, 但是 ,有的分区是没有 vol  和盘符的。
当要输入 硬盘,往往习惯输入 系统 给定的 #n 硬盘号。
而,vol 号 与 disk#n 号 是有重复的 不唯一的。或者 焦点 分区根本没有 vol

个人认为,让用户 输入一个 易于输入,又便于检索,便于程序 调用的 数据标识 是最明智的。
也曾经考虑过用 hd:p 作为 检索输入标识,但是 在定位 数据行上,脚本编辑要 多废几行笔墨,进而会影响效率。而且 hd:p 的格式 需要做特定处理, 不能直接参与 if 语句中 数字对比 运算。

按照你的 列表模式,无疑要 增加 程序编辑 的 成本,而且存在 逻辑漏洞。



作者: freesoft00    时间: 2018-6-6 09:26
dos时代菜鸟 发表于 2018-6-5 22:34
按照你的 列表模式,如果 要删除 一个 没有 vol 号码的 分区,你让用户输入什么 定位到 它?
如果 扩展 ...

8.00这样显示更乱。
感觉还不如原来的



                          硬盘分区序列                                  DiskPart:D:_6.1.7601,脚本:D:
---------------------------------------------------------------------------------------------------------
HDn  Pn  Vol  HD:P_  LTR   Fs       Size   Label         类型_偏移_活动_状态_信息
   1 --------   0     ---  -----  --------  ------------  Disk#0.0B/30GB.Bas.MBR.联机..(VMware, VMware V...SCSI Disk Device)
   |   2    9   0:1    C   NTFS      20 GB  系统盘符C         主要.1024KB.是.正常.系统
   |   3   10   0:2    D   NTFS       9 GB                主要.20GB.否.正常.
   4 --------   1     ---  -----  --------  ------------  Disk#1.1024KB/20GB.Dyn.MBR.联机..(VMware, VMware V...SCSI Disk Device)
   |   5    *   1:1    *             19 GB                动态数据.31KB.否
   6 --------   2     ---  -----  --------  ------------  Disk#2.0B/1200GB.Dyn.GPT.联机..(VMware, VMware V...SCSI Disk Device)
   |   7    6   2:1    *   NTFS     500 MB                恢复.1024KB.晕.正常.已隐藏
   |   8    7   2:2    *   FAT32    100 MB                系统.501MB.晕.正常.已隐藏
   |   9    *   2:3    *           1024 KB                动态保留.601MB.晕
   |  10    *   2:4    *            127 MB                保留.602MB.晕
   |  11    4   2:5    H   NTFS    1199 GB  GPT磁盘的第一个分区   动态数据.729MB.晕.正常.
  12 --------   3     ---  -----  --------  ------------  Disk#3.3072KB/1024GB.Bas.MBR.联机.可扩展.(D:\tools\rsload....-1.12.4\win8.vhd
)
   |  13   11   3:1    L   NTFS      80 GB  系统            主要.1024KB.是.正常.
   |  14   12   3:2    O   NTFS     189 GB  软件            主要.80GB.否.正常.
   |  15   13   3:3    N   NTFS     189 GB  文档            主要.269GB.否.正常.
   |  16    *   3:0    *            565 GB                扩展的.458GB.否
   |  17   14   3:4    M   NTFS     189 GB  娱乐            逻辑.458GB.否.正常.
   |  18   15   3:5    P   NTFS     189 GB  办公            逻辑.647GB.否.正常.
   |  19   16   3:6    Q   NTFS     187 GB  备份            逻辑.836GB.否.正常.
---------------------------------------------------------------------------------------------------------
---当前焦点:Num=  ;  HD:P=

---主菜单------------------------------------------------------------------------------------------------
   L.装卸盘符              D.删除分区               C.创建分区              F.格式化分区
   V.活动分区              Z.调整分区大小           S.清除某硬盘所有分区    T.初始化某硬盘分区形式
   R.刷新列表                                       M.特别说明              X.退出
---------------------------------------------------------------------------------------------------------
---请选择一个操作:___


liangyi 图片上的是挺清晰的。但是批处理不好对齐处理。还不如保持原来的那样7.9那样式的。
作者: freesoft00    时间: 2018-6-6 09:42
本帖最后由 freesoft00 于 2018-6-6 09:48 编辑

   |  19   16   3:6    *   RAW      187 GB                逻辑.836GB.否.正常.
---------------------------------------------------------------------------------------------------------
---当前焦点:Num=  ;  HD:P=

---主菜单------------------------------------------------------------------------------------------------
   L.装卸盘符              D.删除分区               C.创建分区              F.格式化分区
   V.活动分区              Z.调整分区大小           S.清除某硬盘所有分区    T.初始化某硬盘分区形式
   R.刷新列表                                       M.特别说明              X.退出
---------------------------------------------------------------------------------------------------------
---请选择一个操作:___

创建分区,创建后没有格式化,一般创建的时候顺带就格式化了。win系统中一般就选择ntfs、fat、exfat几种格式。要不,创建分区后是raw格式,还需要再次选择格式化,比较麻烦。就是创建选项中再添加上格式化的选项,一次性就完成了。


初始化磁盘,默认是GPT,相对目前用的mbr还是比较多,感觉设置为mbr为默认值比较好。

格式化的时候,如果不设置卷标卷标应该是空的,什么也没有。目前如果不设置卷标卷标是Unknow



作者: liangyi    时间: 2018-6-6 10:01
dos时代菜鸟 发表于 2018-6-5 22:34
按照你的 列表模式,如果 要删除 一个 没有 vol 号码的 分区,你让用户输入什么 定位到 它?
如果 扩展 ...

之前以为vol也是程序罗列的参数,所以才有此一想法欠考虑了;正如 freesoft00 所说,个人也感觉
8.00这样显示更乱,还不如保持原来的7.9那样显示
作者: dos时代菜鸟    时间: 2018-6-6 10:10
脚本设计成 录入一次,就能确定 一个 焦点目标,如果按照  liangyi 的样式,势必需要 录入两次才能确定 一个 分区,要先明确 硬盘,再 明确 分区,这样操作 也繁琐。

正在考虑 修改  check_l ,实现可以 通过 输入 hd.p  明确焦点。

至于创建分区以后 自动格式化,因为涉及到 明确创建的新分区的 hd.p 位置,还要判断 创建是否成功等细节,需要 diskpart 再次扫描 数据,反倒不如 直接手动 来的直接了。

其他的 改动 可以 改一下。
作者: dos时代菜鸟    时间: 2018-6-6 12:24
有的分区是不能格式化的,比如 msr保留分区 和 扩展分区。分区以后自动格式化 这事儿,还要 加个判断
作者: dos时代菜鸟    时间: 2018-6-6 13:12
8.11 新版已经放 1楼,
1、增加 创建分区后 可自动格式化 成制定格式
2、焦点输入 ,支持 通过 hd.p* 的方式 定位,也就是 在 hd.p 号码后面加个 * 星号
3、格式化 类型增加  exfat
4、增加 可以探测 要缩小的 分区的可缩小空间

作者: freesoft00    时间: 2018-6-6 13:19
dos时代菜鸟 发表于 2018-6-6 13:12
8.11 新版已经放 1楼,
1、增加 创建分区后 可自动格式化 成制定格式
2、焦点输入 ,支持 通过 hd.p* 的 ...


                          硬盘分区序列                                  DiskPart:D:_6.1.7601,脚本:D:
---------------------------------------------------------------------------------------------------------
  Num  Vol  HD.P_  LTR   Fs       Size   Label         类型_偏移_活动_状态_信息
    1  ---   0     ---  -----     30 GB  /0B/          Disk#0Disk#0.Bas.MBR.联机..(VMware, VMware V...SCSI Disk Device)
    2    9   0.1    C   NTFS      20 GB  系统盘符C         主要.1024KB.是.正常.系统
    3   10   0.2    D   NTFS       9 GB                主要.20GB.否.正常.
    4  ---   1     ---  -----     20 GB  /1024KB/      Disk#1Disk#1.Dyn.MBR.联机..(VMware, VMware V...SCSI Disk Device)
    5    *   1.1    *             19 GB                动态数据.31KB.否
    6  ---   2     ---  -----   1200 GB  /0B/          Disk#2Disk#2.Dyn.GPT.联机..(VMware, VMware V...SCSI Disk Device)
    7    6   2.1    *   NTFS     500 MB                恢复.1024KB.晕.正常.已隐藏
    8    7   2.2    *   FAT32    100 MB                系统.501MB.晕.正常.已隐藏
    9    *   2.3    *           1024 KB                动态保留.601MB.晕
   10    *   2.4    *            127 MB                保留.602MB.晕
   11    4   2.5    H   NTFS    1199 GB  GPT磁盘的第一个分区   动态数据.729MB.晕.正常.
   12  ---   3     ---  -----   1024 GB  /22GB/        Disk#3Disk#3.Bas.MBR.联机.可扩展.(D:\tools\rsload....-1.12.4\win8.vhd)
   13   11   3.1    *   NTFS    1001 GB  Unknow        主要.1024KB.否.正常.
---------------------------------------------------------------------------------------------------------
---当前焦点:Num=  ;  HD.P=

---主菜单------------------------------------------------------------------------------------------------
   L.装卸盘符              D.删除分区               C.创建分区              F.格式化分区
   V.活动分区              Z.调整分区大小           S.清除某硬盘所有分区    T.初始化某硬盘分区形式
   R.刷新列表                                       M.特别说明              X.退出
---------------------------------------------------------------------------------------------------------
作者: freesoft00    时间: 2018-6-6 13:30
本帖最后由 freesoft00 于 2018-6-6 13:32 编辑

4、增加 可以探测 要缩小的 分区的可缩小空间
-------------------------------------------------------
既然增加了这个。扩展卷的时候是否有一个判断。判断可以扩展多少空间,是否可以扩展?
这个比较复制,windows默认只能扩展1分区后面的未分区空间,如果未分区空间在1分区前面就无法扩展。
主分区可以扩展主分区的,逻辑分区可以扩展逻辑分区的。但是不能主分区扩展逻辑分区的空间。这个是mbr磁盘的情况,因为gpt磁盘都是主分区没有这个限制。但是还是有未分区空间前后的问题。在前面的未分配空间无法扩展到后面的分区。
不好处理就算了。
作者: dos时代菜鸟    时间: 2018-6-6 14:45
freesoft00 发表于 2018-6-6 13:30
4、增加 可以探测 要缩小的 分区的可缩小空间
-------------------------------------------------------
...

这方面 diskpart 很弱的
作者: dos时代菜鸟    时间: 2018-6-6 15:34
修正了一下显示方面的问题,
增加一个可以自适应窗口的功能,就是如果系统中有 mode.com 这个程序,就利用这个程序 计算出 cmd 窗口列宽,然后让 disk#n...... 那一行字显示更多的信息。
你可以 将cmd 窗口最大化,然后 在主菜单 下 按回车刷新一下列表显示,就能看到效果了。如果 vhd 名字比较长。。。的话。

8.12 版放到一楼了。
作者: freesoft00    时间: 2018-6-6 17:40
本帖最后由 freesoft00 于 2018-6-6 17:42 编辑
dos时代菜鸟 发表于 2018-6-6 15:34
修正了一下显示方面的问题,
增加一个可以自适应窗口的功能,就是如果系统中有 mode.com 这个程序,就利用 ...



  1.                          硬盘分区序列                                  DiskPart:D:_6.1.7601,脚本:D:
  2. ---------------------------------------------------------------------------------------------------------
  3. Num Vol HD.P_ LTR  Fs    Fre/Off    Size  Label        Type_Act_Sta_Info_Dyn_GPT_HD.name....
  4.    1 ---  0    --- -----      0 B    30 GB ------------ Disk#0.联机.Bas.MBR..(VMware, VMware Virtual S SCSI Disk Device)
  5.    2   8  0.1   C  NTFS   1024 KB    20 GB 系统盘符C        主要.是.正常.系统
  6.    3   9  0.2   D  NTFS     20 GB     9 GB              主要.否.正常.
  7.    4 ---  1    --- -----  1024 KB    20 GB ------------ Disk#1.联机.Dyn.MBR..(VMware, VMware Virtual S SCSI Disk Device)
  8.    5   *  1.1   *           31 KB    19 GB              动态数据.否
  9.    6 ---  2    --- -----   200 GB  1200 GB ------------ Disk#2.联机.Dyn.GPT..(VMware, VMware Virtual S SCSI Disk Device)
  10.    7   5  2.1   *  NTFS   1024 KB   500 MB              恢复.晕.正常.已隐藏
  11.    8   6  2.2   *  FAT32   501 MB   100 MB              系统.晕.正常.已隐藏
  12.    9   *  2.3   *          601 MB  1024 KB              动态保留.晕
  13.   10   *  2.4   *          602 MB   127 MB              保留.晕
  14.   11   3  2.5   H  NTFS    729 MB  1199 GB GPT磁盘的第一个分区  动态数据.晕.正常.
  15.   12 ---  3    --- -----   751 GB  1024 GB ------------ Disk#3.联机.Bas.MBR.可扩展.(D:\tools\rsload.net...n32-1.12.4\win8.vhd)
  16.   13  10  3.1   L  NTFS   1024 KB     8 GB 新加卷          主要.否.正常.
  17.   14  11  3.2   N  NTFS     47 GB    97 GB 新加卷          主要.否.正常.
  18.   15   *  3.0   *          145 GB   878 GB              扩展的.否
  19.   16  12  3.3   O  NTFS    145 GB    19 GB 新加卷          逻辑.否.正常.
  20.   17  13  3.4   P  NTFS    164 GB    48 GB 新加卷          逻辑.否.正常.
  21.   18  14  3.5   R  NTFS    242 GB    97 GB 新加卷          逻辑.否.正常.
  22. ---------------------------------------------------------------------------------------------------------
  23. ---当前焦点:Num=  ;  HD.P=

  24. ---主菜单------------------------------------------------------------------------------------------------
  25.    L.装卸盘符              D.删除分区               C.创建分区              F.格式化分区
  26.    V.活动分区              Z.调整分区大小           S.清除某硬盘所有分区    T.初始化某硬盘分区形式
  27.    R.刷新列表                                       M.特别说明              X.退出
  28. ---------------------------------------------------------------------------------------------------------
  29. ---请选择一个操作:___
复制代码

作者: freesoft00    时间: 2018-6-6 17:44
本帖最后由 freesoft00 于 2018-6-6 18:24 编辑

扩展的.否,和其它列没有对齐。
mbr磁盘,有扩展分区是没有盘符和卷标的,能处理一下文字和其它的对齐更好。如果不好处理就算了。
这样也行,反正总有不对齐的时候,其它的行如果卷标很长也会错列的。不好处理就这样吧。


Disk#0.联机.Bas.MBR..(
用点分割不是太好,不容易区分,比如用下划线或者波浪形等。

动态磁盘后面的 晕 没有必要添加吧。


DiskPart:D:_6.1.7601,脚本:D:
这部分的信息感觉不要也可以,没有太多的用。

创建分区的时候没有自动分配盘符。加上一个assign分配盘符比较好。除了efi和msr分区不需要添加这个指令分配盘符。


S.清除某硬盘所有分区
选择清除莫一个磁盘所有分区。手动使用diskpart,选择磁盘,然后clean,瞬间就完成了。
但是使用批处理,选择s后时间比较长,cpu占用很大。vds.exe占用cpu在90%多左右。
大概看了一下代码,使用的也是clean。不知道为什么差异会这么大。时间上在几分钟左右。

是否可以再添加上一键分区格式化的功能。这样使用上就更便捷了。
大概功能,在列表的时候先知道磁盘的容量,然后选择一键分区格式化,选择mbr或者gpt,一件分几个区,1——10个区感觉就够了。根据分区个数对磁盘容量平分,然后分区格式化,mbr磁盘设置第一分区为活动分区,gpt磁盘自动创建efi和msr分区。
一种策略是平分,再一种是让用户输入各分区容量,结束后开始按容量分区格式化,输入完成后判断一下容量是否超标,如果超标从新输入。

作者: dos时代菜鸟    时间: 2018-6-7 00:01
freesoft00 发表于 2018-6-6 17:44
扩展的.否,和其它列没有对齐。
mbr磁盘,有扩展分区是没有盘符和卷标的,能处理一下文字和其它的对齐更好 ...

win系统现在 cmd 汉字进行了整字处理,占用2个字符却被识别为1个。导致 无法对其

另外 自动分区 msr 和 efi 体积取多大合适?
作者: 窄口牛    时间: 2018-6-7 06:07
纯win情况下,msr可以不要,efi90m就可以了。多系统下efi200以上,msr也不要。因为很多第三方要求efi大于200兆,比如深度,macx86等等。
作者: freesoft00    时间: 2018-6-7 06:51
dos时代菜鸟 发表于 2018-6-7 00:01
win系统现在 cmd 汉字进行了整字处理,占用2个字符却被识别为1个。导致 无法对其

另外 自动分区 msr  ...

msr一般128mb就可以。efi一般是fat16格式(32格式也可以),大小300mb就够了(diskmen默认是分的300mb)
作者: dos时代菜鸟    时间: 2018-6-7 09:28
8.50 已经 上传 1楼
增加了  均分硬盘 的功能 ,增加 脚本 记录,可以记录 都用了 哪些 脚本命令。

作者: freesoft00    时间: 2018-6-7 09:54
本帖最后由 freesoft00 于 2018-6-7 09:56 编辑
dos时代菜鸟 发表于 2018-6-7 09:28
8.50 已经 上传 1楼
增加了  均分硬盘 的功能 ,增加 脚本 记录,可以记录 都用了 哪些 脚本命令。


diskpart.s文件改为diskpart.txt就可以。这样生成脚本在执行前,可以打开手动修改参数或者磁盘大小。然后执行。打开时txt直接就用记事本打开了。不用右键选择编辑器了。

一般gpt磁盘,efi分区在msr分区前面,这个可以对调一下。

分区个数不能小于3个,这个可以调整一下,因为有些人确实只分一个区,或者U盘的情况,在老版本的win系统中也只能分一个区。
作者: dos时代菜鸟    时间: 2018-6-7 10:00
本帖最后由 dos时代菜鸟 于 2018-6-7 10:12 编辑

分一个区 还用 自动啥?直接 创建 不就行了么?

diskpart 修改 硬盘 结构为  gpt ,就会自动生成一个 msr,只是 空间小,所以要删除了重新建一个 ,如果 微软 在磁盘初始化时 自动生成一个 msr ,那么,个人认为 msr 应该 放前面的。 msr 真没啥感觉 常用到。

diskpart.s 这个 之所以没有 用 txt 做扩展名,就是怕 随意查看修改,如果确实需要修改,有修改脚本能力的,也都是高手了,需要修改的情况也不多。非要 用 Txt 做扩展,可以 在 脚本 前部 修改 set dpscript= 变量 就可以了。



作者: freesoft00    时间: 2018-6-7 10:15
dos时代菜鸟 发表于 2018-6-7 10:00
分一个区 还用 自动啥?直接 创建 不就行了么?

diskpart 修改 硬盘 结构为  gpt ,就会自动生成一个 ms ...

恩。
好的。
在执行脚本的时候没有显示脚本执行情况。
到执行完成后才显示如下的信息:

...正在运行脚本......
------------------------------------------
.磁盘 3 现在是所选磁盘。
.DiskPart 成功地清除了磁盘。
.DiskPart 已将所选磁盘成功地转更换为 MBR 格式。
.DiskPart 成功地创建了指定分区。
.DiskPart 将当前分区标为活动。
  100 百分比已完成
.
.DiskPart 成功格式化该卷。
.DiskPart 成功地分配了驱动器号或装载点。
.DiskPart 成功地创建了指定分区。
.DiskPart 成功地创建了指定分区。
  100 百分比已完成
.
.DiskPart 成功格式化该卷。
.DiskPart 成功地分配了驱动器号或装载点。
.DiskPart 成功地创建了指定分区。
  100 百分比已完成
.
.DiskPart 成功格式化该卷。
.DiskPart 成功地分配了驱动器号或装载点。
.DiskPart 成功地创建了指定分区。
  100 百分比已完成
.
.DiskPart 成功格式化该卷。
.DiskPart 成功地分配了驱动器号或装载点。
------------------------------------------

感觉可以调整一下,所有的执行部分在执行的时候都显示脚本执行情况,可以了解进度。而不是空等待。
作者: freesoft00    时间: 2018-6-7 10:16
创建分区方便了很多。
作者: 窄口牛    时间: 2018-6-7 10:34
说个实际的吧,用Qdir打开win10下的efi分区,这个功能可以考虑加入。
作者: dos时代菜鸟    时间: 2018-6-7 10:35
本帖最后由 dos时代菜鸟 于 2018-6-7 10:41 编辑
freesoft00 发表于 2018-6-7 10:15
恩。
好的。
在执行脚本的时候没有显示脚本执行情况。

这个应该可以的
把脚本 script_l 段 550 行 左右 的代码
  1. for /f "skip=5 delims=" %%a in ('diskpart /s !dpscript! ') do ( echo .%%a)
复制代码

替换成
  1. type !dpscript! |diskpart & echo.
复制代码



懒得调整了
感兴趣,自己试试吧。
作者: dos时代菜鸟    时间: 2018-6-7 10:45
本帖最后由 dos时代菜鸟 于 2018-6-7 10:48 编辑
窄口牛 发表于 2018-6-7 10:34
说个实际的吧,用Qdir打开win10下的efi分区,这个功能可以考虑加入。


嗯,也有用  winxshell 的

我一直这么做的。不过,感觉不用 放到 脚本里,脚本只负责挂载,查看啥的 自己 选择软件 运行呗。
毕竟 cmd 脚本是单线程的。

作者: 窄口牛    时间: 2018-6-7 15:02
看你兴趣,不用当成要求。
作者: dos时代菜鸟    时间: 2018-6-7 15:20
刚改了一些 check_l
输入 焦点 编号的时候,只有当涉及输入的 是 disk 的时候 如果输入的是硬盘 #N 号才需要 后置星号  * ,其他的 输入序号 和 hd.p 都可以锁定 焦点。
作者: dos时代菜鸟    时间: 2018-6-7 15:37
暂时不折腾了,休息休息了。

这个 虽然没有 专业分区软件来的 高级,但 也有优势,就是 体积小。哈哈哈。
核心脚本不到 30K 。需要的其他组件 diskpart.exe /mode.com /chcp.com  基本系统都自带。

作者: dos时代菜鸟    时间: 2018-6-8 21:53
本帖最后由 dos时代菜鸟 于 2018-6-8 21:55 编辑

8.60 测试版 DP_Script-8.60.7z 在一楼
增加可以 按测到 卷 的可用空间,
尝试探测 不在 list part 中的 卷的信息,并将其信息加入列表,因为其没有对应的 part ,所以只能对其进行 格式化 和分配 盘符
某些 u盘 select disk 后自动将  part 选中为焦点,导致 无法探测 该 part 信息,针对这种情况,做了适量调整,但愿能 更多的识别这样的 u盘。
作者: freesoft00    时间: 2018-6-9 10:38
dos时代菜鸟 发表于 2018-6-8 21:53
8.60 测试版 DP_Script-8.60.7z 在一楼
增加可以 按测到 卷 的可用空间,
尝试探测 不在 list part 中的  ...
  1.   Num Vol HD.P_ LTR  Fs    Offset    Free/Size    Label        PType_Act_Stat_Info_Vtype_/#n_DSta_Dyn_GPT_HD.name....
  2.     1 ---  0    --- ----- -------      0B/30GB    ------------ Disk#0_联机_Bas_MBR_.(VMware, VMware Virtual S SCSI Disk Device)
  3.     2   6  0.1   C  NTFS   1024KB    13GB/20GB    系统盘符C        主要_是__正常_系统_磁盘分区
  4.     3   7  0.2   D  NTFS     20GB  6320MB/9GB                  主要_否__正常_...._磁盘分区
  5.     4 ---  1    --- ----- -------  1024KB/20GB    ------------ Disk#1_联机_Dyn_MBR_.(VMware, VMware Virtual S SCSI Disk Device)
  6.     5   *  1.1   *           31KB        /19GB                 动态数据_否__...._...._....
  7.     6   0  1.x   G  NTFS  .......     9GB/9GB     新加卷          .._.._正常_...._简单
  8.     7   4  1.x   F  NTFS  .......    10GB/9GB     新加卷          .._.._正常_...._简单
  9.     8 ---  2    --- ----- -------      0B/1200GB  ------------ Disk#2_联机_Bas_GPT_.(VMware, VMware Virtual S SCSI Disk Device)
  10.     9  11  2.1   *  NTFS   1024KB /500MB                恢复_否_正常_已隐藏_磁盘分区
  11.    10  12  2.2   *  FAT32   501MB /100MB                系统_否_正常_已隐藏_磁盘分区
  12.    11   *  2.3   *          601MB        /128MB                保留_否_...._...._....
  13.    12   8  2.4   J  NTFS    729MB    89GB/90GB                 主要_否_正常_...._磁盘分区
  14.    13   9  2.5   K  NTFS     90GB  1000GB/1000GB               主要_否_正常_...._磁盘分区
  15.    14  10  2.6   L  NTFS   1091GB   108GB/108GB                主要_否_正常_...._磁盘分区
  16.    15 ---  3    --- ----- -------  3072KB/1024GB  ------------ Disk#3_联机_Bas_MBR_可扩展.(D:\tools\rsload.net.Wireshark-win32-1.12.4\rsload.net.Wireshark-win32-1.12.4\win8.vhd)
  17.    16  13  3.1   H  NTFS   1024KB   255GB/256GB   System       主要_是__正常_...._磁盘分区
  18.    17   *  3.0   *          256GB        /767GB                扩展的_否__...._...._....
  19.    18  14  3.2   I  NTFS    256GB   255GB/256GB                逻辑_否__正常_...._磁盘分区
  20.    19  15  3.3   M  NTFS    512GB   255GB/256GB                逻辑_否__正常_...._磁盘分区
  21.    20  16  3.4   N  NTFS    768GB   255GB/255GB                逻辑_否__正常_...._磁盘分区
  22.    21 ---  4    --- ----- -------      0B/7702MB  ------------ Disk#4_联机_Bas_MBR_.(ibootd USB Flash Disk USB Device)
  23.    22  17  4.1   O  NTFS    630MB  2296MB/7072MB               主要_是__正常_...._可移动
  24.    23 ---  5    --- ----- -------    14MB/58GB    ------------ Disk#5_联机_Bas_MBR_.(Mass Storage Device USB Device)
  25.    24  18  5.1   P  NTFS     12MB    37GB/56GB    USB_DISK     主要_否__正常_...._可移动
  26.    25   *  5.0   *           56GB        /1691MB               主要_否__...._...._....
  27.    26 --- M0    --- ----- -------      0B/0B      ------------ Disk#M0_丢失_Dyn_MBR_.(UNKNOWN)
  28.    27   1 M0.x   *        ....... /749GB                .._.._失败_...._简单
  29.    28   2 M0.x   *        ....... /749GB                .._.._失败_...._简单
  30.    29   3 M0.x   *        ....... /749GB                .._.._失败_...._简单
复制代码

作者: freesoft00    时间: 2018-6-9 10:39
partlist.txt内容。
磁盘容量的地方错位了。
虚拟机测试,挂接的两个U盘。
列表时间很长,有几分钟。
是8.60
作者: freesoft00    时间: 2018-6-9 10:42
  1.   Num Vol HD.P_ LTR  Fs    Fre/Off    Size  Label        PType_Act_Stat_Info_Vtype_/#n_DSta_Dyn_GPT_HD.name....
  2.     1 ---  0    --- -----      0 B    30 GB ------------ Disk#0_联机_Bas_MBR_.(VMware, VMware Virtual S SCSI Disk Device)
  3.     2   6  0.1   C  NTFS   1024 KB    20 GB 系统盘符C        主要_是__正常_系统_磁盘分区
  4.     3   7  0.2   D  NTFS     20 GB     9 GB              主要_否__正常_...._磁盘分区
  5.     4 ---  1    --- -----  1024 KB    20 GB ------------ Disk#1_联机_Dyn_MBR_.(VMware, VMware Virtual S SCSI Disk Device)
  6.     5   *  1.1   *           31 KB    19 GB              动态数据_否__...._...._....
  7.     6 ---  2    --- -----      0 B  1200 GB ------------ Disk#2_联机_Bas_GPT_.(VMware, VMware Virtual S SCSI Disk Device)
  8.     7  11  2.1   *  NTFS   1024 KB   500 MB              恢复_否_正常_已隐藏_磁盘分区
  9.     8  12  2.2   *  FAT32   501 MB   100 MB              系统_否_正常_已隐藏_磁盘分区
  10.     9   *  2.3   *          601 MB   128 MB              保留_否_...._...._....
  11.    10   8  2.4   J  NTFS    729 MB    90 GB              主要_否_正常_...._磁盘分区
  12.    11   9  2.5   K  NTFS     90 GB  1000 GB              主要_否_正常_...._磁盘分区
  13.    12  10  2.6   L  NTFS   1091 GB   108 GB              主要_否_正常_...._磁盘分区
  14.    13 ---  3    --- -----  3072 KB  1024 GB ------------ Disk#3_联机_Bas_MBR_可扩展.(D:\tools\rsload.net.Wireshark-win32-1.12.4\rsload.net.Wireshark-win32-1.12.4\win8.vhd)
  15.    14  13  3.1   H  NTFS   1024 KB   256 GB System       主要_是__正常_...._磁盘分区
  16.    15   *  3.0   *          256 GB   767 GB              扩展的_否__...._...._....
  17.    16  14  3.2   I  NTFS    256 GB   256 GB              逻辑_否__正常_...._磁盘分区
  18.    17  15  3.3   M  NTFS    512 GB   256 GB              逻辑_否__正常_...._磁盘分区
  19.    18  16  3.4   N  NTFS    768 GB   255 GB              逻辑_否__正常_...._磁盘分区
  20.    19 ---  4    --- -----      0 B  7702 MB ------------ Disk#4_联机_Bas_MBR_.(ibootd USB Flash Disk USB Device)
  21.    20  17  4.1   O  NTFS    630 MB  7072 MB              主要_是__正常_...._可移动
  22.    21 ---  5    --- -----    14 MB    58 GB ------------ Disk#5_联机_Bas_MBR_.(Mass Storage Device USB Device)
  23.    22  18  5.1   P  NTFS     12 MB    56 GB USB_DISK     主要_否__正常_...._可移动
  24.    23   *  5.0   *           56 GB  1691 MB              主要_否__...._...._....
  25.    24 --- M0    --- -----      0 B      0 B ------------ Disk#M0_丢失_Dyn_MBR_.(UNKNOWN)
复制代码


同一个测试环境8.55的信息。
作者: freesoft00    时间: 2018-6-9 10:46
8.60第二次执行的时候快点了。但是还不算太快。
好像和U盘有关系。发现在生成列表的时候,U盘的指示灯一直在闪烁。有可能是这个关系,所以速度很慢。
把U盘去掉后,两个版本生成列表都快了。总体还是8.55快,8.60慢点。
作者: dos时代菜鸟    时间: 2018-6-9 11:03
改进 8.60 中由于没有预设 vol_free 占位 导致当 detail vol  无法获取 vol_free 时free/size 字段错位的问题。
8.61 测试 已经放入1楼

从 反馈 列表看,探测 不能被 list part 的卷的信息,是可行的,
因为多探测的几个卷,所以会多费些时间。
作者: freesoft00    时间: 2018-6-9 12:06
dos时代菜鸟 发表于 2018-6-9 11:03
改进 8.60 中由于没有预设 vol_free 占位 导致当 detail vol  无法获取 vol_free 时free/size 字段错位的问 ...

  1.                         MS DiskPart 分区管理                                  Ver:8.60_2018.06.08
  2. ---------------------------------------------------------------------------------------------------------
  3. Num Vol HD.P_ LTR  Fs    Offset    Free/Size    Label        PType_Act_Stat_Info_Vtype_/#n_DSta_Dyn_GPT_HD.name....
  4.    1 ---  0    --- ----- -------      0B/30GB    ------------ Disk#0_联机_Bas_MBR_.(VMware, VMware Virtual S SCSI Disk Device)
  5.    2   6  0.1   C  NTFS   1024KB    13GB/20GB    系统盘符C        主要_是__正常_系统_磁盘分区
  6.    3   7  0.2   D  NTFS     20GB  6319MB/9GB                  主要_否__正常_...._磁盘分区
  7.    4 ---  1    --- ----- -------  1024KB/20GB    ------------ Disk#1_联机_Dyn_MBR_.(VMware, VMware Virtual S SCSI Disk Device)
  8.    5   *  1.1   *           31KB        /19GB                 动态数据_否__...._...._....
  9.    6   0  1.x   G  NTFS  .......     9GB/9GB     新加卷          .._.._正常_...._简单
  10.    7   4  1.x   F  NTFS  .......    10GB/9GB     新加卷          .._.._正常_...._简单
  11.    8 ---  2    --- ----- -------      0B/1200GB  ------------ Disk#2_联机_Bas_GPT_.(VMware, VMware Virtual S SCSI Disk Device)
  12.    9  11  2.1   *  NTFS   1024KB        /500MB                恢复_否_正常_已隐藏_磁盘分区
  13.   10  12  2.2   *  FAT32   501MB        /100MB                系统_否_正常_已隐藏_磁盘分区
  14.   11   *  2.3   *          601MB        /128MB                保留_否_...._...._....
  15.   12   8  2.4   J  NTFS    729MB    89GB/90GB                 主要_否_正常_...._磁盘分区
  16.   13   9  2.5   K  NTFS     90GB  1000GB/1000GB               主要_否_正常_...._磁盘分区
  17.   14  10  2.6   L  NTFS   1091GB   108GB/108GB                主要_否_正常_...._磁盘分区
  18.   15 ---  3    --- ----- -------  3072KB/1024GB  ------------ Disk#3_联机_Bas_MBR_可扩展.(D:\tools\rsload.n...2-1.12.4\win8.vhd)
  19.   16  13  3.1   H  NTFS   1024KB   255GB/256GB   System       主要_是__正常_...._磁盘分区
  20.   17   *  3.0   *          256GB        /767GB                扩展的_否__...._...._....
  21.   18  14  3.2   I  NTFS    256GB   255GB/256GB                逻辑_否__正常_...._磁盘分区
  22.   19  15  3.3   M  NTFS    512GB   255GB/256GB                逻辑_否__正常_...._磁盘分区
  23.   20  16  3.4   N  NTFS    768GB   255GB/255GB                逻辑_否__正常_...._磁盘分区
  24.   21 --- M0    --- ----- -------      0B/0B      ------------ Disk#M0_丢失_Dyn_MBR_.(UNKNOWN)
  25.   22   1 M0.x   *        .......        /749GB                .._.._失败_...._简单
  26.   23   2 M0.x   *        .......        /749GB                .._.._失败_...._简单
  27.   24   3 M0.x   *        .......        /749GB                .._.._失败_...._简单
  28. ---------------------------------------------------------------------------------------------------------
  29. ---当前焦点:Num=  ;  HD.P=

  30. ---主菜单------------------------------------------------------------------------------------------------
  31.    O.硬盘联机或脱机     S.清除所有分区     T.初始化硬盘     P.硬盘均分     C.创建分区
  32.    D.删除分区           Z.调整分区大小     V.活动分区       L.装卸盘符     F.格式化分区
  33.    R.刷新列表                                               M.特别说明     X.退出
  34. ---------------------------------------------------------------------------------------------------------
  35. ---请选择一个操作:___
复制代码


还是没有对齐
作者: dos时代菜鸟    时间: 2018-6-9 12:14
freesoft00 发表于 2018-6-9 12:06
还是没有对齐

已经对齐了,对齐的是中间 中间那个 “/”
作者: freesoft00    时间: 2018-6-9 12:26
本帖最后由 freesoft00 于 2018-6-9 12:32 编辑
dos时代菜鸟 发表于 2018-6-9 12:14
已经对齐了,对齐的是中间 中间那个 “/”


哦,是对齐/
我以为是对齐后面的单位GB(MB)。如果是对齐后面的单位更整齐,就像原来的版本那样。

1 ---  0    --- ----- -------      0B/30GB    ------------ Disk#0_联机_Bas_MBR_.(VMware, VMware Virtual S SCSI Disk Device)
感觉磁盘信息改成下面的更好
1 ---  0    -------------------------------------------------Disk#0_0B/30GB_online_Bas_MBR_.(VMware, VMware Virtual S SCSI Disk Device)

作者: dos时代菜鸟    时间: 2018-6-9 12:47
freesoft00 发表于 2018-6-9 12:26
哦,是对齐/
我以为是对齐后面的单位GB(MB)。如果是对齐后面的单位更整齐,就像原来的版本那样。

...

作 自动均分硬盘的时候要到 那个位置读取硬盘容量,改到后面跟 很多无法确定长度的信息混在一起,不好截取.
作者: freesoft00    时间: 2018-6-9 14:06
dos时代菜鸟 发表于 2018-6-9 12:47
作 自动均分硬盘的时候要到 那个位置读取硬盘容量,改到后面跟 很多无法确定长度的信息混在一起,不好截取.

哦,好的。已功能为主。就保持现状吧。
在有U盘的情况下是否可以加快获取列表的时候。如果没有什么改进的余地就算了。这样也可以。
作者: dos时代菜鸟    时间: 2018-6-10 23:58
本帖最后由 dos时代菜鸟 于 2018-6-11 09:53 编辑

x9.02 在1楼
采用新的 导入分区序列的算法,只需 3次调用 diskpart 就可以探测全部分区信息。
最慢 估计 20秒 也完成了。有 u盘的情况下 我这边的 环境  13秒进入菜单。

作者: freesoft00    时间: 2018-6-11 10:40
dos时代菜鸟 发表于 2018-6-10 23:58
x9.02 在1楼
采用新的 导入分区序列的算法,只需 3次调用 diskpart 就可以探测全部分区信息。
最慢 估计  ...

  1.                         MS DiskPart 分区管理                                  Ver:X9.03
  2. ---------------------------------------------------------------------------------------------------------
  3. Num Vol HD.P_ LTR  Fs    Offset    Free/Size    Label        PType_Act_Stat_Info_Vtype_/#n_DSta_Dyn_GPT_HD.name....
  4.    1 ---  0    --- ----- -------      0B/30GB    ------------ Disk#0_联机_Bas_MBR.(VMware, VMware Virtual S SCSI Disk Device)
  5.    2   6  0.1   C  NTFS   1024KB    13GB/20GB    系统盘符C        主要_是_正常_系统_磁盘分区
  6.    3   7  0.2   D  NTFS     20GB  6319MB/9GB                  主要_否_正常_...._磁盘分区
  7.    4 ---  1    --- ----- -------  1024KB/20GB    ------------ Disk#1_联机_Dyn_MBR.(VMware, VMware Virtual S SCSI Disk Device)
  8.    5   *  1.1   *           31KB        /19GB                 动态数据_否_...._...._....
  9.    6   4  1.x   F  NTFS  .......    10GB/10GB    新加卷          _.._正常_...._简单
  10.    7   0  1.x   G  NTFS  .......     9GB/9GB     新加卷          _.._正常_...._简单
  11.    8 ---  2    --- ----- -------      0B/1200GB  ------------ Disk#2_联机_Bas_GPT.(VMware, VMware Virtual S SCSI Disk Device)
  12.    9  11  2.1   *  NTFS   1024KB ......./500MB                恢复_否_正常_已隐藏_磁盘分区
  13.   10  12  2.2   *  FAT32   501MB ......./100MB                系统_否_正常_已隐藏_磁盘分区
  14.   11   *  2.3   *          601MB        /128MB                保留_否_...._...._....
  15.   12   8  2.4   J  NTFS    729MB    89GB/90GB                 主要_否_正常_...._磁盘分区
  16.   13   9  2.5   K  NTFS     90GB  1000GB/1000GB               主要_否_正常_...._磁盘分区
  17.   14  10  2.6   L  NTFS   1091GB   108GB/108GB                主要_否_正常_...._磁盘分区
  18.   15 ---  3    --- ----- -------  3072KB/1024GB  ------------ Disk#3_联机_Bas_MBR.(D:\tools\rsload.net...in32-1.12.4\win8.vhd)
  19.   16  13  3.1   H  NTFS   1024KB   255GB/256GB   System       主要_是_正常_...._磁盘分区
  20.   17   *  3.0   *          256GB        /767GB                扩展的_否_...._...._....
  21.   18  14  3.2   I  NTFS    256GB   255GB/256GB                逻辑_否_正常_...._磁盘分区
  22.   19  15  3.3   M  NTFS    512GB   255GB/256GB                逻辑_否_正常_...._磁盘分区
  23.   20  16  3.4   N  NTFS    768GB   255GB/255GB                逻辑_否_正常_...._磁盘分区
  24.   21 ---  4    --- ----- -------      0B/7702MB  ------------ Disk#4_联机_Bas_MBR.(ibootd USB Flash Disk USB Device)
  25.   22  17  4.1   O  NTFS    630MB  2296MB/7072MB               主要_是_正常_...._可移动
  26.   23 --- M0    --- ----- -------      0B/0B      ------------ Disk#M0_丢失_Dyn_MBR.(UNKNOWN)
  27.   24   3 M0.x   *        ....... ......./50GB                 _.._失败_...._简单
  28.   25   2 M0.x   *        ....... ......./200GB                _.._失败_...._简单
  29.   26   1 M0.x   *        ....... ......./749GB                _.._失败_...._简单
  30. ---------------------------------------------------------------------------------------------------------
  31. ---当前焦点:Num=  ;  HD.P=                                                    10:33:09.18 - 10:33:41.64

  32. ---主菜单------------------------------------------------------------------------------------------------
  33.          O.硬盘联机或脱机     S.清除所有分区     T.初始化硬盘     P.硬盘均分     C.创建分区
  34.          D.删除分区           Z.调整分区大小     V.活动分区       L.装卸盘符     F.格式化分区
  35.          R.刷新列表                                               M.特别说明     X.退出
  36. ---------------------------------------------------------------------------------------------------------
复制代码

作者: freesoft00    时间: 2018-6-11 10:43
Free/Size
这个地方不行分开行不行。
Free   Size
还是以后部单位对齐,这样显得整齐。现在以/对齐看着不整齐。

作者: freesoft00    时间: 2018-6-11 11:46
本帖最后由 freesoft00 于 2018-6-12 10:29 编辑


check为执行脚本
en_disk_info为执行后的信息。
作者: dos时代菜鸟    时间: 2018-6-11 12:13
本帖最后由 dos时代菜鸟 于 2018-6-11 12:55 编辑
freesoft00 发表于 2018-6-11 10:43
Free/Size
这个地方不行分开行不行。
Free   Size


已经调整 在 1楼 x9.05


另外 ,英文版的 ,还需要调整 提示文本 ,不光是 索引 字段。把 windows\systemre\diskpart.exe 对应的 zh-cn 中的语言文件 删掉 diskpart 就变成英文了。

作者: freesoft00    时间: 2018-6-11 12:31
dos时代菜鸟 发表于 2018-6-11 12:13
已经调整 在 1楼 x9.05

  1.                         MS DiskPart 分区管理                                                  Ver:X9.05
  2. ---------------------------------------------------------------------------------------------------------
  3. Num Vol HD.P_ LTR  Fs    Offset    Free    Size Label        PType_Act_Stat_Info_Vtype_/#n_DSta_Dyn_GPT_HD.name....
  4.    1 ---  0    --- ----- -------      0B    30GB ------------ Disk#0_联机_Bas_MBR_.(VMware, VMware Virtual S SCSI Disk Device)
  5.    2   7  0.1   C  NTFS   1024KB    13GB    20GB 系统盘符C        主要_是_正常_系统_磁盘分区
  6.    3   8  0.2   D  NTFS     20GB  6319MB     9GB              主要_否_正常_...._磁盘分区
  7.    4 ---  1    --- ----- -------     9GB    20GB ------------ Disk#1_联机_Dyn_MBR_.(VMware, VMware Virtual S SCSI Disk Device)
  8.    5   *  1.1   *           31KB            19GB              动态数据_否_...._...._....
  9.    6   0  1.x   F  NTFS             10GB    10GB 新加卷          _.._正常_...._简单
  10.    7 ---  2    --- ----- -------      0B  1200GB ------------ Disk#2_联机_Dyn_GPT_.(VMware, VMware Virtual S SCSI Disk Device)
  11.    8   4  2.1   *  NTFS   1024KB           500MB              恢复_否_正常_已隐藏_磁盘分区
  12.    9   5  2.2   *  FAT32   501MB           100MB              系统_否_正常_已隐藏_磁盘分区
  13.   10   *  2.3   *          601MB          1024KB              动态保留_否_...._...._....
  14.   11   *  2.4   *          602MB           127MB              保留_否_...._...._....
  15.   12   3  2.5   J  NTFS    729MB    89GB  1199GB              动态数据_否_正常_...._简单
  16.   13   2  2.x   K  NTFS           1000GB  1000GB              _.._正常_...._简单
  17.   14   1  2.x   L  NTFS            108GB   108GB              _.._正常_...._简单
  18. ---------------------------------------------------------------------------------------------------------
  19. ---当前焦点:Num=  ;  HD.P=                                                    12:29:51.90 - 12:29:57.61

  20. ---主菜单------------------------------------------------------------------------------------------------
  21.          O.硬盘联机或脱机     S.清除所有分区     T.初始化硬盘     P.硬盘均分     C.创建分区
  22.          D.删除分区           Z.调整分区大小     V.活动分区       L.装卸盘符     F.格式化分区
  23.          R.刷新列表                                               M.特别说明     X.退出
  24. ---------------------------------------------------------------------------------------------------------
  25. ---请选择一个操作:___
复制代码


ok,整齐了。
作者: dos时代菜鸟    时间: 2018-6-11 14:18
freesoft00 发表于 2018-6-11 12:31
ok,整齐了。

弄了个 英文的 也不知道翻译的 合适不,呵呵,都放在 1楼 ,x9.05--2l.7z
作者: freesoft00    时间: 2018-6-11 15:14
本帖最后由 freesoft00 于 2018-6-11 15:15 编辑
dos时代菜鸟 发表于 2018-6-11 14:18
弄了个 英文的 也不知道翻译的 合适不,呵呵,都放在 1楼 ,x9.05--2l.7z



                        MS DiskPart Patrition_Manager                                 Ver:X9.05
---------------------------------------------------------------------------------------------------------
Num Vol HD.P_ LTR  Fs    Offset    Free    Size Label        PType_Act_Stat_Info_Vtype_/#n_DSta_Dyn_GPT_HD.name....
   1 ---  0    --- ----- -------      0B    30GB ------------ Disk#0_Online_Bas_MBR_.(VMware, VMware V... SCSI Disk Device)
   2   6  0.1   *  NTFS   1024KB   115MB   350MB System Rese  Primary_Yes_Healthy_System_Partition
   3   7  0.2   C  NTFS    351MB    14GB    20GB              Primary_No_Healthy_Boot_Partition
   4   8  0.3   D  NTFS     21GB  7417MB     8GB              Primary_No_Healthy_...._Partition
   5 ---  1    --- ----- -------  1024KB  1500GB ------------ Disk#1_Online_Bas_MBR_.(VMware, VMware V... SCSI Disk Device)
   6   *  1.1   *           KB17         ved1024              Dynamic_+盻...._...._....
   7   *  1.2   *         1041KB           127MB              Reserved_+盻...._...._....
   8   *  1.3   *          GB128         ata1499              Dynamic_+盻...._...._....
   9   4  1.x   F  NTFS           5838MB  5870MB New Volume   _.._Healthy_...._Simple
  10   3  1.x   G  NTFS              9GB     9GB New Volume   _.._Healthy_...._Simple
  11   2  1.x   H  NTFS             19GB    19GB New Volume   _.._Healthy_...._Simple
  12   1  1.x   I  NTFS            976GB   976GB New Volume   _.._Healthy_...._Simple
  13   0  1.x   J  NTFS            488GB   488GB New Volume   _.._Healthy_...._Simple
  14 ---  2    --- ----- -------     9MB  1024GB ------------ Disk#2_Online_Bas_MBR_Expandable.(D:\222.vhdx)
  15   9  2.1   K  NTFS   2048KB    79GB    80GB System       Primary_Yes_Healthy_...._Partition
  16  10  2.2   L  NTFS     80GB   188GB   189GB Software     Primary_No_Healthy_...._Partition
  17   *  2.0   *          269GB           754GB              Extended_No_...._...._....
  18  11  2.3   M  NTFS    269GB   188GB   189GB Documents    Logical_No_Healthy_...._Partition
  19  12  2.4   N  NTFS    458GB   188GB   189GB Entertainme  Logical_No_Healthy_...._Partition
  20  13  2.5   O  NTFS    647GB   188GB   189GB Work         Logical_No_Healthy_...._Partition
  21  14  2.6   P  NTFS    836GB   187GB   187GB Backup       Logical_No_Healthy_...._Partition
---------------------------------------------------------------------------------------------------------
---Current focus:  Num=  ;  HD.P=                                                    14:36:06.76 - 14:36:15.48

---Main Menu---------------------------------------------------------------------------------------------
         O.Disk_On/Offline    S.Clean           T.Convert           P.Auto_fdisk        C.Creat_part
         D.Del_part           Z.Resize_part     V.Active_part       L.Load/Down_Vol     F.Format
         R.Refresh                                                  M.description       X.eXit
---------------------------------------------------------------------------------------------------------
---Please choose an operation:___

作者: dos时代菜鸟    时间: 2018-6-11 15:22
freesoft00 发表于 2018-6-11 15:14
MS DiskPart Patrition_Manager                                 Ver:X9.0 ...

那个 盼 其实是 否 ,没 英化 过去,应该是 NO

另外发现  efi 类 分区 可以被 diskpart 多次挂载盘符 ,本来 针对 有 盘符的 卷,为了防止 被 多挂载 都是 先 挂载一下再 卸载的。看来 这个不行了。干脆 就 remove 一次 得了,如果 发现 efi 盘符没有被卸载掉 而盘符又变了,说明它 被挂载了多次, 就再 手动卸载 一次。
作者: freesoft00    时间: 2018-6-11 15:22
本帖最后由 freesoft00 于 2018-6-11 15:23 编辑

获取磁盘信息不准确,磁盘1是动态磁盘,并且是gpt分区
单位位置也在数字前面了。

英文版本装载卸载盘符。
---Load/Down_Vol
Please enter a new disk symbol,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,
Default:C,0:Down,9:Return,Enter_key confirmation:
缺省是C盘,而中文可以做到排除现有盘符,默认是第一个没有的盘符。英文版本的不行。
Z后的的逗号可以去掉。

格式化部分如果方便可以做一个判断。
如果分区容量大于4000MB就无法格式化为fat格式。
如果分区容量大于33000MB(列表显示32GB)就无法格式化为fat32格式。
输入的时候可以从新输入要需要的格式,否则会提示分区容量大无法格式化为相应的分区。

如果方便可以根据系统语言环境分别设置不同的关键词和提示信息。这样一个批处理就完成了。不方便就两个也可以。
作者: dos时代菜鸟    时间: 2018-6-11 15:27
freesoft00 发表于 2018-6-11 15:22
获取磁盘信息不准确,磁盘1是动态磁盘,并且是gpt分区
单位位置也在数字前面了。


英文版的 字符 对其 截取 等方面可能 还有问题,单词长度不一样,可能。位置发生了变化。还需要研究下。如果 中文版 的功能 基本稳定 ,可以 考虑 做 英文版的,以使 字符截取方面 更具通用性。

作者: freesoft00    时间: 2018-6-11 15:27
dos时代菜鸟 发表于 2018-6-11 15:27
英文版的 字符 对其 截取 等方面可能 还有问题,单词长度不一样,可能。位置发生了变化。还需要研究下。
...

好的
作者: dos时代菜鸟    时间: 2018-6-11 15:30
freesoft00 发表于 2018-6-11 15:27
好的

字符截取上,dyn 那个 ,可能 要用到 从后面 向前面截取了。
作者: dos时代菜鸟    时间: 2018-6-11 20:20
9.07 中文,英文 两个版本的 已上传到1 楼,两个都要 体验下,因为 除了语言交互不同,别的几乎没有什么 不同。但是 两种语言环境下 文本的显示长度确是不同的,同一个词义,汉语两个字就够了,而英文却要两个单词。
作者: freesoft00    时间: 2018-6-11 20:49
dos时代菜鸟 发表于 2018-6-11 20:20
9.07 中文,英文 两个版本的 已上传到1 楼,两个都要 体验下,因为 除了语言交互不同,别的几乎没有什么 不 ...

好。这就测试。
作者: freesoft00    时间: 2018-6-11 21:05
本帖最后由 freesoft00 于 2018-6-11 21:15 编辑

  1.                         MS DiskPart Patrition_Manager                                 Ver:X9.07
  2. ---------------------------------------------------------------------------------------------------------
  3. Num Vol HD.P_ LTR  Fs   Offset   Free   Size Label        PType_Act_Stat_Info_Vtype_/#n_DSta_Dyn_GPT_HD.name....
  4.    1 ---  0    --- ----- ------     0B   30GB ------------ Disk#0_Online_BAS_MBR_.(VMware, VMware Virtual S SCSI Disk Device)
  5.    2   1  0.1   *  NTFS  1024KB  115MB  350MB System Rese  Primary_Yes_Healthy_...._Partition
  6.    3   2  0.2   C  NTFS   351MB   14GB   20GB              Primary_No_Healthy_...._Partition
  7.    4   3  0.3   D  NTFS    21GB 6457MB    8GB              Primary_No_Healthy_...._Partition
  8.    5 ---  1    --- ----- ------     0B 1500GB ------------ Disk#1_Online_BAS_GPT_.(VMware, VMware Virtual S SCSI Disk Device)
  9.    6   7  1.1   *  NTFS  1024KB          500MB              Recovery_.._Healthy_...._Partition
  10.    7   8  1.2   *  FAT32  501MB          300MB              System_.._Healthy_...._Partition
  11.    8   *  1.3   *         801MB         128MB              Reserved_.._...._...._....
  12.    9   4  1.4   H  NTFS   929MB   79GB   80GB              Primary_.._Healthy_...._Partition
  13.   10   5  1.5   I  NTFS    80GB   89GB   90GB              Primary_.._Healthy_...._Partition
  14.   11   6  1.6   J  NTFS   171GB 1328GB 1328GB              Primary_.._Healthy_...._Partition
  15.   12 ---  2    --- ----- ------    9MB 1024GB ------------ Disk#2_Online_BAS_MBR_Expandable.(D:\222.vhdx)
  16.   13   9  2.1   F  NTFS  2048KB   79GB   80GB ??           Primary_Yes_Healthy_...._Partition
  17.   14   *  2.0   *          80GB         756GB              Extended_No_...._...._....
  18.   15  10  2.3   G  NTFS    80GB  188GB  189GB ??           Logical_No_Healthy_...._Partition
  19.   16  11  2.4   K  NTFS   269GB  188GB  189GB ??           Logical_No_Healthy_...._Partition
  20.   17  12  2.5   L  NTFS   458GB  188GB  189GB ??           Logical_No_Healthy_...._Partition
  21.   18  13  2.6   M  NTFS   647GB  188GB  189GB ??           Logical_No_Healthy_...._Partition
  22.   19  14  2.2   N  NTFS   836GB  187GB  187GB ??           Primary_No_Healthy_...._Partition
  23. ---------------------------------------------------------------------------------------------------------
  24. ---Current focus:  Num=  ;  HD.P=                                                    20:55:23.49 - 20:55:29.42

  25. ---Main Menu---------------------------------------------------------------------------------------------
  26.          O.Disk_On/Offline    S.Clean           T.Convert           P.Auto_fdisk        C.Creat_part
  27.          D.Del_part           Z.Resize_part     V.Active_part       L.Load/Down_Vol     F.Format
  28.          R.Refresh                                                  M.description       X.eXit
  29. ---------------------------------------------------------------------------------------------------------
  30. ---Please choose an operation:___
复制代码

磁盘1有两个分区容量有点错位。500mb和300mb那一行。错位1个字符。
??问号卷标没有问题,我是使用的中文卷标,在英文系统中,所以显示问号,这个是没有问题的。

把磁盘1转换为动态磁盘。90GB和1328GB两个也错位了,错位2个字符。
  1.                         MS DiskPart Patrition_Manager                                 Ver:X9.07
  2. ---------------------------------------------------------------------------------------------------------
  3. Num Vol HD.P_ LTR  Fs   Offset   Free   Size Label        PType_Act_Stat_Info_Vtype_/#n_DSta_Dyn_GPT_HD.name....
  4.    1 ---  0    --- ----- ------     0B   30GB ------------ Disk#0_Online_BAS_MBR_.(VMware, VMware Virtual S SCSI Disk Device)
  5.    2   6  0.1   *  NTFS  1024KB  115MB  350MB System Rese  Primary_Yes_Healthy_...._Partition
  6.    3   7  0.2   C  NTFS   351MB   14GB   20GB              Primary_No_Healthy_...._Partition
  7.    4   8  0.3   D  NTFS    21GB 6457MB    8GB              Primary_No_Healthy_...._Partition
  8.    5 ---  1    --- ----- ------     0B 1500GB ------------ Disk#1_Online_Dyn_GPT_.(VMware, VMware Virtual S SCSI Disk Device)
  9.    6   3  1.1   *  NTFS  1024KB          500MB              Recovery_.._Healthy_...._Partition
  10.    7   4  1.2   *  FAT32  501MB          300MB              System_.._Healthy_...._Partition
  11.    8   *  1.7   *         801MB        1024KB              Dynamic Reserved_.._...._...._....
  12.    9   *  1.3   *         802MB         127MB              Reserved_.._...._...._....
  13.   10   2  1.4   H  NTFS   929MB   79GB 1499GB              Dynamic Data_.._Healthy_...._Simple
  14.   11   1  1.x   I  NTFS             89GB   90GB              _.._Healthy_...._Simple
  15.   12   0  1.x   J  NTFS           1328GB 1328GB              _.._Healthy_...._Simple
  16.   13 ---  2    --- ----- ------    9MB 1024GB ------------ Disk#2_Online_BAS_MBR_Expandable.(D:\222.vhdx)
  17.   14   9  2.1   F  NTFS  2048KB   79GB   80GB ??           Primary_Yes_Healthy_...._Partition
  18.   15   *  2.0   *          80GB         756GB              Extended_No_...._...._....
  19.   16  10  2.3   G  NTFS    80GB  188GB  189GB ??           Logical_No_Healthy_...._Partition
  20.   17  11  2.4   K  NTFS   269GB  188GB  189GB ??           Logical_No_Healthy_...._Partition
  21.   18  12  2.5   L  NTFS   458GB  188GB  189GB ??           Logical_No_Healthy_...._Partition
  22.   19  13  2.6   M  NTFS   647GB  188GB  189GB ??           Logical_No_Healthy_...._Partition
  23.   20  14  2.2   N  NTFS   836GB  187GB  187GB ??           Primary_No_Healthy_...._Partition
  24. ---------------------------------------------------------------------------------------------------------
  25. ---Current focus:  Num=  ;  HD.P=                                                    20:57:06.60 - 20:57:12.77

  26. ---Main Menu---------------------------------------------------------------------------------------------
  27.          O.Disk_On/Offline    S.Clean           T.Convert           P.Auto_fdisk        C.Creat_part
  28.          D.Del_part           Z.Resize_part     V.Active_part       L.Load/Down_Vol     F.Format
  29.          R.Refresh                                                  M.description       X.eXit
  30. ---------------------------------------------------------------------------------------------------------
  31. ---Please choose an operation:___
复制代码


  1.                         MS DiskPart 分区管理                                                  Ver:X9.07
  2. ---------------------------------------------------------------------------------------------------------
  3. Num Vol HD.P_ LTR  Fs   Offset   Free   Size Label        PType_Act_Stat_Info_Vtype_/#n_DSta_Dyn_GPT_HD.name....
  4.    1 ---  0    --- ----- ------     0B   30GB ------------ Disk#0_联机_BAS_MBR_.(VMware, VMware Virtual S SCSI Disk Device)
  5.    2   7  0.1   C  NTFS  1024KB   13GB   20GB 系统盘符C        主要_是_正常_...._磁盘分区
  6.    3   8  0.2   D  NTFS    20GB 6319MB    9GB              主要_否_正常_...._磁盘分区
  7.    4 ---  1    --- ----- ------    9GB   20GB ------------ Disk#1_联机_Dyn_MBR_.(VMware, VMware Virtual S SCSI Disk Device)
  8.    5   *  1.1   *          31KB          19GB              动态数据_否_...._...._....
  9.    6   0  1.x   F  NTFS           10GB   10GB 新加卷          _.._正常_...._简单
  10.    7 ---  2    --- ----- ------     0B 1200GB ------------ Disk#2_联机_Dyn_GPT_.(VMware, VMware Virtual S SCSI Disk Device)
  11.    8   4  2.1   *  NTFS  1024KB          500MB              恢复_.._正常_...._磁盘分区
  12.    9   5  2.2   *  FAT32  501MB          100MB              系统_.._正常_...._磁盘分区
  13.   10   *  2.3   *         601MB        1024KB              动态保留_.._...._...._....
  14.   11   *  2.4   *         602MB         127MB              保留_.._...._...._....
  15.   12   3  2.5   J  NTFS   729MB   89GB 1199GB              动态数据_.._正常_...._简单
  16.   13   2  2.x   K  NTFS         1000GB 1000GB              _.._正常_...._简单
  17.   14   1  2.x   L  NTFS          108GB  108GB              _.._正常_...._简单
  18.   15 ---  3    --- ----- ------ 3072KB 1024GB ------------ Disk#3_联机_BAS_MBR_可扩展.(D:\tools\rsload.ne...n32-1.12.4\win8.vhd)
  19.   16   9  3.1   H  NTFS  1024KB  255GB  256GB System       主要_是_正常_...._磁盘分区
  20.   17   *  3.0   *         256GB         767GB              扩展的_否_...._...._....
  21.   18  10  3.2   I  NTFS   256GB  255GB  256GB              逻辑_否_正常_...._磁盘分区
  22.   19  11  3.3   M  NTFS   512GB  255GB  256GB              逻辑_否_正常_...._磁盘分区
  23.   20  12  3.4   N  NTFS   768GB  255GB  255GB              逻辑_否_正常_...._磁盘分区
  24. ---------------------------------------------------------------------------------------------------------
  25. ---当前焦点:Num=  ;  HD.P=                                                    21:13:09.88 - 21:13:17.87

  26. ---主菜单------------------------------------------------------------------------------------------------
  27.          O.硬盘联机或脱机     S.清除所有分区     T.初始化硬盘     P.硬盘均分     C.创建分区
  28.          D.删除分区           Z.调整分区大小     V.活动分区       L.装卸盘符     F.格式化分区
  29.          R.刷新列表                                               M.特别说明     X.退出
  30. ---------------------------------------------------------------------------------------------------------
  31. ---请选择一个操作:___
复制代码


中文环境,gpt磁盘,也是500mb和100mb往后错位一个字符。
作者: dos时代菜鸟    时间: 2018-6-11 21:56
freesoft00 发表于 2018-6-11 21:05
磁盘1有两个分区容量有点错位。500mb和300mb那一行。错位1个字符。
??问号卷标没有问题,我是使用的中 ...

我也发现了,已经修正,还有那个 可用盘符 列表的问题一同修复的,在1楼

因为以前给 size 字段预留了 7 个字符,现在用 6 个了,而 空的 size 段还赋值为 7个字符长度。
作者: freesoft00    时间: 2018-6-11 22:25
dos时代菜鸟 发表于 2018-6-11 21:56
我也发现了,已经修正,还有那个 可用盘符 列表的问题一同修复的,在1楼

因为以前给 size 字段预留了 7  ...

基本上好了。
英文系统中。
磁盘1 动态磁盘。90GB和1328GB两个还是错位了,但是错位字符由2个变成了1个。
作者: dos时代菜鸟    时间: 2018-6-11 22:28
本帖最后由 dos时代菜鸟 于 2018-6-11 22:41 编辑
freesoft00 发表于 2018-6-11 22:25
基本上好了。
英文系统中。
磁盘1 动态磁盘。90GB和1328GB两个还是错位了,但是错位字符由2个变成了1个 ...


脚本中确实 还有一处 用到了 占位 7 个字符的 地方 。

不知道  1.2 1.3 1.4 三个特殊分区 Ptype 项 显示的效果是否显示全了,因为 这个地方英文是两个单词。
作者: freesoft00    时间: 2018-6-11 22:43
dos时代菜鸟 发表于 2018-6-11 22:28
脚本中确实 还有一处 用到了 占位 7 个字符的 地方 。

不知道  1.2 1.3 1.4 三个特殊分区 Ptype 项  ...

OKl了。
作者: dos时代菜鸟    时间: 2018-6-11 22:46
freesoft00 发表于 2018-6-11 22:43
OKl了。



再次十分感谢。
作者: dos时代菜鸟    时间: 2018-6-11 22:50
发现  efi 类 分区 不能 直接 变更 盘符,因为 这个分区 可以 占用 多个盘符,所以 变更之前必须 先 remove .
我脚本中 已经设置成 对要变更盘符 的卷 先卸载 在 赋予 新 盘符。
以前,正常 卷 是不用这么麻烦的 ,直接 赋予新盘符 就可以了。

但是 efi 的不一样, 要是 不 先 remove 就  assign 不仅不会变更盘符,新的 盘符 也已经 不能用了,其实 就是 也被 挂到 efi 分区上了,当你 remove 一次以后,这个 后分给 他的 盘符 才生效。

不知道这个是不是 个例
作者: freesoft00    时间: 2018-6-11 23:06
dos时代菜鸟 发表于 2018-6-11 22:50
发现  efi 类 分区 不能 直接 变更 盘符,因为 这个分区 可以 占用 多个盘符,所以 变更之前必须 先 remove ...

efi是这样的,可以重复加载。先remove还是比较合理的。
作者: dos时代菜鸟    时间: 2018-6-13 13:38
更新,已经放到1楼
针对  不能被 select part 成功的  partition ,脚本中将其 hd.p 编号 设置为 hd.x 类型,以使其只能进行 vol 级别的操作。

作者: freesoft00    时间: 2018-6-13 14:00
dos时代菜鸟 发表于 2018-6-13 13:38
更新,已经放到1楼
针对  不能被 select part 成功的  partition ,脚本中将其 hd.p 编号 设置为 hd.x 类 ...

晚上测试。
下午有事。
作者: freesoft00    时间: 2018-6-13 18:07
dos时代菜鸟 发表于 2018-6-13 13:38
更新,已经放到1楼
针对  不能被 select part 成功的  partition ,脚本中将其 hd.p 编号 设置为 hd.x 类 ...

中英文都测试了。没有什么问题。

通过随机数 匹配 临时文件名,一定程度避免 现有文件 冲突。
-------------------------------------------------------------------------
这个没有必要用随机数创建临时文件名称吧。>    >>   或者先删除再创建,一般没有发现有残存冲突的情况。
作者: dos时代菜鸟    时间: 2018-6-13 19:24
freesoft00 发表于 2018-6-13 18:07
中英文都测试了。没有什么问题。

通过随机数 匹配 临时文件名,一定程度避免 现有文件 冲突。

之前放的地方有个名叫 temp.txt 的文件夹,因为脚本用这个名的文件做中间文本,结果,脚本卡住了。所以弄成带随机数了。
作者: freesoft00    时间: 2018-6-13 19:44
dos时代菜鸟 发表于 2018-6-13 19:24
之前放的地方有个名叫 temp.txt 的文件夹,因为脚本用这个名的文件做中间文本,结果,脚本卡住了。所以弄 ...

那就rd 后再del,然后再使用临时脚本。
要不临时文件太多。看着不如原来的舒服。
你权衡吧。我个人意见。
作者: nttwqz    时间: 2018-6-14 20:15
还是放到临时文件夹吧,脚本所在目录看着太乱
作者: dos时代菜鸟    时间: 2018-6-14 21:31
nttwqz 发表于 2018-6-14 20:15
还是放到临时文件夹吧,脚本所在目录看着太乱

本来预想也是用winrar压成可执行文件,在系统临时文件夹下运行的,后来又有个 脚本历史文件,就没再考虑这事儿。
作者: freesoft00    时间: 2018-6-14 23:07
dos时代菜鸟 发表于 2018-6-14 21:31
本来预想也是用winrar压成可执行文件,在系统临时文件夹下运行的,后来又有个 脚本历史文件,就没再考虑 ...

压成exe没有必要。
不想在脚本所在目录,创建在temp目录也行,在temp创建一个临时目录存放临时文件。

作者: chiannet    时间: 2018-6-16 21:19
本帖最后由 chiannet 于 2018-6-16 21:22 编辑

想收入大大的作品到USBOS供选择使用。在windows 10 1803下(尚未在PE环境折腾)以管理员权限测试,仅打开一下,结果如下。



1、简体中文版 表头不是中文



2、英文版有乱码。这个不予计较,本身卷标是中文,有乱码也不怪,但能否以unicode来搞定。



3、对于类似6,7,8,9这样的读卡器未插卡的设备,建议不显示,即便显示出来也是无意义的。






欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3