无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: dos时代菜鸟
打印 上一主题 下一主题

diskpart shell ,用 pecmd 给 diskpart 做个外壳 2022.03.23 ver:1.28 改进

    [复制链接]
91#
 楼主| 发表于 2020-7-15 15:41:03 | 显示全部楼层
本帖最后由 dos时代菜鸟 于 2020-7-15 15:44 编辑

发现 常规 显示全部 分区信息是 ,各分区 offset 显示可能出现 问题,已经纠正,
Ver .  1.23.83  放到 1楼

因为创建分区 是可以用 加减乘除 表达式 的,这样就可以对某一为分区区域进行 随意切割划分创建分区了。

同样的,知道了某个 ntfs 分区后面有多少 没有分区的空间,也方便对其扩容。

vhd 方面 支持 根据已有 vhd 创建子vhd ,加载 vhd 也方便多了。

回复

使用道具 举报

92#
 楼主| 发表于 2020-7-15 20:29:18 | 显示全部楼层
本帖最后由 dos时代菜鸟 于 2020-7-15 20:30 编辑

来个新功能图解 通过磁盘未分区空间 创建分区。

一、新建一个主分区









二、来个高级的 在 未分区的空间的后部 创建一个主分区






回复

使用道具 举报

93#
 楼主| 发表于 2020-7-15 23:11:41 | 显示全部楼层
2010hook 发表于 2020-7-15 23:06
卷标末尾含有很多空格,第372行应改为:

好的
回复

使用道具 举报

94#
 楼主| 发表于 2020-7-16 10:58:56 | 显示全部楼层
2020.07.16  Ver:1.23.85
1.增加计算扩展分区中未分区空间总值 Ext_free ,扩展分区有多少未被分配的空间一目了然了。
2.可以通过选择 扩展分区 来 创建 其间的 逻辑分区
3.完善创建分区模块
4.改善 获取卷标 时 附带多余空格的问题
5.改进 格式化 模块,增加 快速格式化选项 和 ntfs 模式压缩选项。
回复

使用道具 举报

95#
 楼主| 发表于 2020-7-16 11:55:59 | 显示全部楼层
本帖最后由 dos时代菜鸟 于 2020-7-16 12:16 编辑
2010hook 发表于 2020-7-16 11:49
1、“如果行数多余这个值”,应该是“多于”;
2、创建分区,设置大小默认值是“-1”;
3、卷标带空格, ...

第2 条 在什么情况下出现    上个图,看下分区结构,你选择的是 硬盘,还是扩展分区,还是 Log类型 的空余空间 还是 pri 类型的空余空间?
十分怀疑你选择了 一个没有分区余地的硬盘或者 扩展分区


第3条 已经解决,只是 放到了 最后一步,因为考虑到 用户可能多输入 一些空格,所以 是对最后结果 进行去空格处理的。也就是说 不管 截取到的 是什么,去空格以后 如果卷标是空的,就不设置卷标。

一些注释 内容 和命令行的大小写 等问题,如果不影响功能,就先不考虑了。

回复

使用道具 举报

96#
 楼主| 发表于 2020-7-16 13:21:56 | 显示全部楼层
本帖最后由 dos时代菜鸟 于 2020-7-16 16:16 编辑

想到个可能的问题,如果硬盘没有分区,硬盘初始空余空间记录应该设置为硬盘总大小减1 ,因为diskpart 创建硬盘分区,offset默认1M。

diskpart 也会计算 这个 1024K, 所以 ,当一个没有分区的 硬盘 对应的 分区列表里,应该只有一行数据,就是它的可用于分区的空间区间,这个区间的 offset 应该显示为 0K 而不必是 1024K ,这个问题已经更正了, ver 1.23.87 放在一楼了。

这个问题 只在 要把一块硬盘的全部容量分成一个分区的时候会体现出来,虽然罕见,也 作为功能问题,更新了一下。


回复

使用道具 举报

97#
 楼主| 发表于 2020-7-16 18:49:00 | 显示全部楼层
本帖最后由 dos时代菜鸟 于 2020-7-16 18:50 编辑
2010hook 发表于 2020-7-16 18:43
最新版1.23.87,仍未解决:

1、无未分区空间的显示大小为“-1”,另外这两输入框宽度为250更好:

你选那个 硬盘 都没有用于分区 的空间了,还分个啥区?不给你显示 -1 就怪了。你先看看 你要选的那个硬盘 的 free 有多少?是 0 呀!!!

卷标那个事情,不是说了吗?无所谓的,不信你试一下效果就知道了。
回复

使用道具 举报

98#
 楼主| 发表于 2020-7-16 18:52:29 | 显示全部楼层
本帖最后由 dos时代菜鸟 于 2020-7-16 18:54 编辑
2010hook 发表于 2020-7-16 18:50
同一个磁盘的不同分区,颜色一样?
我觉得可以对不同性质的分区采用不同颜色区分。比如ESP、逻辑分区、扩 ...

这个嘛,属于锦上添花 的想法,有时间再做。
颜色主要是 用来区分 不同硬盘上的分区,同一硬盘上的不同分区也用颜色,估计在分区总表上会不好识别。只能用在 单一硬盘的分区列表显示上。

回复

使用道具 举报

99#
 楼主| 发表于 2020-7-16 19:06:14 | 显示全部楼层
2010hook 发表于 2020-7-16 18:57
我指的是观感问题。如果你以“-1”提示选错磁盘,也行。

需要 给不同 id 的硬盘 定义不同的颜色 先汇总下 都有哪些 类型的 特定id 在研究下用啥颜色,再 做。做起来不难,
美工 比较费时费力,如同另一个领域。
回复

使用道具 举报

100#
 楼主| 发表于 2020-7-16 19:27:21 | 显示全部楼层
创建分区 可以通过 选择 某个硬盘 下的某个未被分区的区域,来进行分区,
如果该硬盘 下没有可以被选择的 空余空间 来供新建分区,也就自然不能创建分区了,这样更一目了然。

选择了硬盘,不选择其下方 的某个可供分区的 区域记录,而直接 点击 “创建分区”按钮,  相对来说 一些数据 都需要自己录入,也不方便,这个功能 之所以没有屏蔽,就是考虑到 有些时候 可能还是需要 自定义一些 offset 和 size ,要自己算。
回复

使用道具 举报

101#
 楼主| 发表于 2020-7-17 11:35:21 | 显示全部楼层
刚弄了些颜色 设置 ,更新 1.23.88
放到一楼
回复

使用道具 举报

102#
 楼主| 发表于 2020-7-17 17:47:14 | 显示全部楼层
1.23.9 算是正式的功能完善版本了。
如果功能上 没啥问题了,就考虑在 做一些边角的完善。
回复

使用道具 举报

103#
 楼主| 发表于 2020-7-18 23:32:53 | 显示全部楼层
更新 1.23.91
简化了一些关于颜色的设置
vhd 创建 支持 G整数容量

回复

使用道具 举报

104#
 楼主| 发表于 2020-7-20 07:00:16 来自手机 | 显示全部楼层
2010hook 发表于 2020-7-19 23:39
不管是VHDx还是RAMOS,4GB是非常重要的分区容量值。

自己加
回复

使用道具 举报

105#
 楼主| 发表于 2020-7-20 07:51:21 | 显示全部楼层
窄口牛 发表于 2020-7-20 07:16
打包成7z自解包可以正常使用。

好的,
一直没怎么研究 自解压 运行。
回复

使用道具 举报

106#
 楼主| 发表于 2020-7-20 08:36:24 | 显示全部楼层
本帖最后由 dos时代菜鸟 于 2020-7-20 08:46 编辑

好像 还没有 分区软件 提供 对硬盘某个区域 进行均分 的功能吧,
过一阵,考虑 能不能 实现这个功能。
需要考虑 硬盘当前的分区模式(mbr / gpt ),区域类型(可以创建主分区还是逻辑分区) ,待分区区域的大小和欲划分的个数。
这个个数问题,
还要考虑 如果是 mbr 的,已经有多少个主分区了还能不能建立主分区,还能建立几个,
如果没有扩展分区的,就要考虑 在扩展分区中建立逻辑分区,就可以减多少个都行。

,如果是要创建逻辑分区,当然多少个都行。

看着有些麻烦,需要慢慢把逻辑缕清了才行。

还有就是 对当前的 硬盘均分功能如何改造。


先歇歇,过些天再研究。

回复

使用道具 举报

107#
 楼主| 发表于 2020-7-20 08:51:27 | 显示全部楼层
窄口牛 发表于 2020-7-20 08:43
均分就得考虑两种模式,排除esp和排除esp,msr和esp,msr,恢复分区,bug10预留的分区越多了,下一部估计会 ...

gpt 模式的 还好办,都是主分区,可以创建多少个都行,

关键就是 mbr 结构的,麻烦,主分区就4个,其中一个是 扩展分区,而扩展分区里可有很多逻辑分区。
而待均分的区域,到底是个啥区域,是在扩展分区里,还是在扩展分区外。还要对当前硬盘分区情况进行计算,是否已经有分区了,分区情况是啥样的,然后才能分析出 整个待分区区域 到底能怎么分。
回复

使用道具 举报

108#
 楼主| 发表于 2020-7-20 09:38:24 | 显示全部楼层
本帖最后由 dos时代菜鸟 于 2020-7-20 09:44 编辑
窄口牛 发表于 2020-7-20 09:03
mbr少于4个就全部主分区,大于4就一个主其余全部逻辑。mbr怎么还难了。gpt复杂,保留分区,bug10cao蛋。

mbr 的应该用 3 做 界定,如果有3个主分区,而其中一个是扩展分区的,那么 就只能再建 一个主分区,
如果已经有4个主分区了,就没法再建分区了。除非 空间在扩展分区里面。

而且还要考虑 你要建多少个分区的问题,如果 没有扩展分区,而你选的区域 可以建主分区,而你要建10个分区,怎么办?是先建一个扩展分区再建10个逻辑分区呢?还是先可着主分区建,最后再建一个扩展分区,再分逻辑分区呢? 这个都嘚考虑呀,如果你的硬盘有两个 不连续的 可以建主分区的空间呢?主分区建多了,那另一个空余空间 就啥也不能干了。



回复

使用道具 举报

109#
 楼主| 发表于 2020-7-20 09:49:49 | 显示全部楼层
2010hook 发表于 2020-7-20 09:43
一个注册表值就可以解决,没什么好骂的,微软也是基于实际需要,不是乱来的。

硬盘均分没有价值,别人 ...

就是 均分 这个概念惹的祸。
如果我有一个区域, 2/5 建一个,然后剩下的 2/3 建一个,然后 再建一个,这就不算均分了。

同样的,如果 我 2/5 建一个,剩下的 分二份 建立二个等分区,就算均分了。而这个需求还是有的。
均分不是指对整个硬盘,而是对 某一区域来说,就有价值了。
回复

使用道具 举报

110#
 楼主| 发表于 2020-7-20 10:37:26 | 显示全部楼层
2010hook 发表于 2020-7-20 10:21
不如做成启动U盘受众更广,免去很多人量产之苦。
ESP+exFAT,ESP空间4GB放置PE等系统,位置可对调。我是 ...

esp 是 uefi 用的,
回复

使用道具 举报

111#
 楼主| 发表于 2020-7-20 22:03:46 | 显示全部楼层
本帖最后由 dos时代菜鸟 于 2020-7-20 22:52 编辑

2020.07.20
Ver 1.24.1  下载请到一楼。
更新
可以 对 某硬盘未分区空间 进行 平均分区,


对区域进行均分,主要用在 硬盘建立了 c:盘 用于安装系统以后,其他空间 进行一键均分。



逻辑实现如下:
当用户选择一个 未分区空间时,先判断 这个空间对应的硬盘 有没有分区,
如果没有,就跳转到 硬盘均分 模块
如果有,获取硬盘分区模式 gpt /mbr ,分析 这个未分区空间 是 主分区 特点 还是逻辑分区特点,
MBR 模式:

如果硬盘已经有 扩展分区,而该未分区空间 在 扩展分区外,就 只能对其进行主分区分割,最多也就分3个,能分几个,脚本已经计算好了,
如果这个未分区空间 在 扩展分区里,就对其创建逻辑分区,理论上 个数不受限制,脚本提供最多10个
如果 没有扩展分区,而该分区具有主分区特点,就 把该区域分成一个扩展分区,在创建 多个 逻辑分区,理论上个数不收限制,脚本提供最多10个

Gpt 模式:
直接 把指定区域 均分创建 指定个数的 主分区即可。



支持 一次删除 包含逻辑分区的 扩展分区。
逐个分析硬盘各分区 的 offset 和 end, 将扩展分区中的逻辑分区删除,再删除 扩展分区。



回复

使用道具 举报

112#
 楼主| 发表于 2020-7-21 23:13:05 来自手机 | 显示全部楼层
纠正了一个可能一直存在的问题,两个表上方显示的硬盘个数和分区总数 不会更新,已经修复,ver 1 24.21。
回复

使用道具 举报

113#
 楼主| 发表于 2020-7-22 14:52:00 来自手机 | 显示全部楼层
2010hook 发表于 2020-7-22 13:26
别叫“均分”了,改为“多分”吧,功能不局限于均分,可以任意大小、任意数量。

说的容易
回复

使用道具 举报

114#
 楼主| 发表于 2020-7-24 13:52:31 来自手机 | 显示全部楼层
2010hook 发表于 2020-7-24 09:15
做起来也很容易,一个输入框搞定,任意输入:

计数简单吧?逐个数值填入size= 简单吧!

啥分区格式,是否涉及扩展分区,分区数超过四个的mbr盘就要考虑。
你输入的那些都能保证是数字么
加一起不超过硬盘容量么,中间有改动,其他数字是否跟着也调整改变,等等。。。。

等到出问题了,就嚷嚷个不得了。
出问题了,从来不考虑自己是不是输入错误,提建议从来不考虑算法和逻辑。


回复

使用道具 举报

115#
 楼主| 发表于 2020-9-14 11:27:41 | 显示全部楼层

最好在 pe 下用
回复

使用道具 举报

116#
 楼主| 发表于 2021-1-10 21:54:46 | 显示全部楼层
zhxy9804 发表于 2021-1-8 08:03
能给加个整数分区,那就很完美了

已经引入了整数分区的概念,只是用到了vhd 方面。

回复

使用道具 举报

117#
 楼主| 发表于 2021-2-1 22:42:40 | 显示全部楼层
回复

使用道具 举报

118#
 楼主| 发表于 2021-2-1 23:46:36 | 显示全部楼层
pecmd 的 list 控件 需要设置 高度,必须附带 参数 -h 且 -h 必须放在 控件名称前面 ,-h 参数必须紧跟 list 指令后面
回复

使用道具 举报

119#
 楼主| 发表于 2021-6-20 19:16:36 来自手机 | 显示全部楼层
nttwqz 发表于 2021-6-20 09:44
找个帖子,随手测试了一下,无法完成初始化。结束后,手动关闭所有pecmd.exe、diskpart.exe进程再管理员 ...

我也遇到过这个情况,原因不明,
如果直接运行 DISKPART 可以顺利进入DISKPART界面么?
怕是 PECMD 版本的问题。如果系统中有PECMD 也可能会出问题。
回复

使用道具 举报

120#
 楼主| 发表于 2021-6-21 21:08:45 来自手机 | 显示全部楼层
nttwqz 发表于 2021-6-20 21:10
已确认,就是系统变量%path%某个路径下有pecmd.exe造成,换成新版或删除后,问题解决。
鉴于PE中一般都 ...

时间太紧,过几天细细研究下。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-5-19 07:49

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表