无忧启动论坛

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

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

    [复制链接]
211#
 楼主| 发表于 2020-7-20 07:00:16 来自手机 | 只看该作者
2010hook 发表于 2020-7-19 23:39
不管是VHDx还是RAMOS,4GB是非常重要的分区容量值。

自己加
回复

使用道具 举报

212#
发表于 2020-7-20 07:16:09 来自手机 | 只看该作者
打包成7z自解包可以正常使用。
回复

使用道具 举报

213#
 楼主| 发表于 2020-7-20 07:51:21 | 只看该作者
窄口牛 发表于 2020-7-20 07:16
打包成7z自解包可以正常使用。

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

使用道具 举报

214#
 楼主| 发表于 2020-7-20 08:36:24 | 只看该作者
本帖最后由 dos时代菜鸟 于 2020-7-20 08:46 编辑

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

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

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

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


先歇歇,过些天再研究。

回复

使用道具 举报

215#
发表于 2020-7-20 08:43:57 来自手机 | 只看该作者
均分就得考虑两种模式,排除esp和排除esp,msr和esp,msr,恢复分区,bug10预留的分区越多了,下一部估计会把整个硬盘都给用户预留了 免得你们不买硬盘。
回复

使用道具 举报

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

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

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

使用道具 举报

217#
发表于 2020-7-20 09:03:30 来自手机 | 只看该作者
mbr少于4个就全部主分区,大于4就一个主其余全部逻辑。mbr怎么还难了。gpt复杂,保留分区,bug10cao蛋。
回复

使用道具 举报

218#
 楼主| 发表于 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个逻辑分区呢?还是先可着主分区建,最后再建一个扩展分区,再分逻辑分区呢? 这个都嘚考虑呀,如果你的硬盘有两个 不连续的 可以建主分区的空间呢?主分区建多了,那另一个空余空间 就啥也不能干了。



回复

使用道具 举报

219#
发表于 2020-7-20 09:43:25 | 只看该作者

一个注册表值就可以解决,没什么好骂的,微软也是基于实际需要,不是乱来的。

硬盘均分没有价值,别人才没做,因为用户数据不是均分的!
回复

使用道具 举报

220#
发表于 2020-7-20 09:46:35 来自手机 | 只看该作者
大部分人只会用c盘,别的盘都是摆设。所以啥比似的平分是可以的,嘿嘿。为啥不骂,bug10生来就是让骂的,不骂,除非我沙了。
回复

使用道具 举报

221#
 楼主| 发表于 2020-7-20 09:49:49 | 只看该作者
2010hook 发表于 2020-7-20 09:43
一个注册表值就可以解决,没什么好骂的,微软也是基于实际需要,不是乱来的。

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

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

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

使用道具 举报

222#
发表于 2020-7-20 10:21:38 | 只看该作者

不如做成启动U盘受众更广,免去很多人量产之苦。
ESP+exFAT,ESP空间4GB放置PE等系统,位置可对调。我是通过批处理实现的。
回复

使用道具 举报

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

esp 是 uefi 用的,
回复

使用道具 举报

224#
 楼主| 发表于 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, 将扩展分区中的逻辑分区删除,再删除 扩展分区。



回复

使用道具 举报

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

使用道具 举报

226#
发表于 2020-7-22 13:26:39 | 只看该作者
本帖最后由 2010hook 于 2020-7-22 13:30 编辑

别叫“均分”了,改为“多分”吧,功能不局限于均分,可以任意大小、任意数量。
回复

使用道具 举报

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

说的容易
回复

使用道具 举报

228#
发表于 2020-7-24 09:15:04 | 只看该作者

做起来也很容易,一个输入框搞定,任意输入:
  1. 20G 80G 80G 500G 500G
复制代码

计数简单吧?逐个数值填入size= 简单吧!
数值任意填,这就涵盖均分了。
回复

使用道具 举报

229#
 楼主| 发表于 2020-7-24 13:52:31 来自手机 | 只看该作者
2010hook 发表于 2020-7-24 09:15
做起来也很容易,一个输入框搞定,任意输入:

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

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

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


回复

使用道具 举报

230#
发表于 2020-8-20 11:34:23 | 只看该作者
谢谢楼主分享!!
回复

使用道具 举报

231#
发表于 2020-9-12 22:31:59 | 只看该作者
是在PE下运行的?
回复

使用道具 举报

232#
 楼主| 发表于 2020-9-14 11:27:41 | 只看该作者

最好在 pe 下用
回复

使用道具 举报

233#
发表于 2021-1-8 08:03:03 | 只看该作者
能给加个整数分区,那就很完美了
回复

使用道具 举报

234#
 楼主| 发表于 2021-1-10 21:54:46 | 只看该作者
zhxy9804 发表于 2021-1-8 08:03
能给加个整数分区,那就很完美了

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

回复

使用道具 举报

235#
发表于 2021-1-12 19:41:27 | 只看该作者
dos时代菜鸟 发表于 2021-1-10 21:54
已经引入了整数分区的概念,只是用到了vhd 方面。

嗯,现在一个硬盘顶多分三个区,前面几个区,设计几个常用的.20 30 40 50
就可以了
回复

使用道具 举报

236#
 楼主| 发表于 2021-2-1 22:42:40 | 只看该作者
回复

使用道具 举报

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

使用道具 举报

238#
发表于 2021-6-17 19:54:55 | 只看该作者
谢谢分享
回复

使用道具 举报

239#
发表于 2021-6-20 09:44:08 | 只看该作者

找个帖子,随手测试了一下,无法完成初始化。结束后,手动关闭所有pecmd.exe、diskpart.exe进程再管理员打开也不行

回复

使用道具 举报

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

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

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-4-24 23:34

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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