找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
楼主: dos时代菜鸟

diskpart shell ,用 pecmd 给 diskpart 做个外壳 ver:1.29.3

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

使用道具 举报

发表于 2020-7-22 13:26:39 | 显示全部楼层
本帖最后由 2010hook 于 2020-7-22 13:30 编辑

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

点评

说的容易  详情 回复 发表于 2020-7-22 14:52
回复

使用道具 举报

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

说的容易
回复

使用道具 举报

发表于 2020-7-24 09:15:04 | 显示全部楼层

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

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

点评

啥分区格式,是否涉及扩展分区,分区数超过四个的mbr盘就要考虑。 你输入的那些都能保证是数字么 加一起不超过硬盘容量么,中间有改动,其他数字是否跟着也调整改变,等等。。。。 等到出问题了,就嚷嚷个不得  详情 回复 发表于 2020-7-24 13:52
回复

使用道具 举报

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

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

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

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


回复

使用道具 举报

发表于 2020-8-20 11:34:23 | 显示全部楼层
谢谢楼主分享!!
回复

使用道具 举报

发表于 2020-9-12 22:31:59 | 显示全部楼层
是在PE下运行的?

点评

最好在 pe 下用  详情 回复 发表于 2020-9-14 11:27
回复

使用道具 举报

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

最好在 pe 下用
回复

使用道具 举报

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

点评

已经引入了整数分区的概念,只是用到了vhd 方面。 [attachimg]472604[/attachimg]  详情 回复 发表于 2021-1-10 21:54
回复

使用道具 举报

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

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

点评

嗯,现在一个硬盘顶多分三个区,前面几个区,设计几个常用的.20 30 40 50 就可以了  详情 回复 发表于 2021-1-12 19:41
回复

使用道具 举报

发表于 2021-1-12 19:41:27 | 显示全部楼层
dos时代菜鸟 发表于 2021-1-10 21:54
已经引入了整数分区的概念,只是用到了vhd 方面。

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

发表于 2021-6-17 19:54:55 | 显示全部楼层
谢谢分享
回复

使用道具 举报

发表于 2021-6-20 09:44:08 | 显示全部楼层
捕获.PNG

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

点评

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

使用道具 举报

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

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

点评

已确认,就是系统变量%path%某个路径下有pecmd.exe造成,换成新版或删除后,问题解决。 鉴于PE中一般都内置有pecmd,并且版本各异,建议优先使用工具自带的,如果没有,使用系统内置的,最好先检查下版本,满足要求  详情 回复 发表于 2021-6-20 21:10
回复

使用道具 举报

发表于 2021-6-20 21:10:57 | 显示全部楼层
dos时代菜鸟 发表于 2021-6-20 19:16
我也遇到过这个情况,原因不明,
如果直接运行 DISKPART 可以顺利进入DISKPART界面么?
怕是 PECMD 版 ...

已确认,就是系统变量%path%某个路径下有pecmd.exe造成,换成新版或删除后,问题解决。
鉴于PE中一般都内置有pecmd,并且版本各异,建议优先使用工具自带的,如果没有,使用系统内置的,最好先检查下版本,满足要求再运行,否则提示。

下面的写法有问题,如果目标目录没有pecmd,则会从%path%变量下的目录查找运行,这就造成了错误,虽然看似兼容性更强。
  1. start /b "" /d "!pecmd_path!" "pecmd.exe" load  "!pecmd_script!"
复制代码
建议至少应改为
  1. start "" /b "!pecmd_path!\pecmd.exe" load  "!pecmd_script!"
复制代码

捕获.PNG


建议使用上面的配色,目前不够美观,可参考Excel表格格式,有一大堆漂亮的样式。
如果能适配高分屏就更好了。


点评

[attachimg]489239[/attachimg]  详情 回复 发表于 2021-10-25 09:07
时间太紧,过几天细细研究下。  详情 回复 发表于 2021-6-21 21:08
回复

使用道具 举报

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

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

使用道具 举报

 楼主| 发表于 2021-7-9 12:12:44 | 显示全部楼层
高分屏 没用过,不知道咋 调试。
脚本中 已经加入 设置每个窗口的字体,不知道能有效果不。
回复

使用道具 举报

发表于 2021-7-10 04:18:35 | 显示全部楼层
mark一下,这工具还是很不错的
回复

使用道具 举报

发表于 2021-8-10 16:17:39 | 显示全部楼层
pecmd 给 diskpart 外壳,超级厉害,喜欢,感谢分享
回复

使用道具 举报

发表于 2021-9-9 16:44:21 来自手机 | 显示全部楼层
窄口牛 发表于 2019-3-29 18:18
dg到现在对ext支持也不行,因为linux对磁盘就一塌糊涂。diskpart强大啥,也就是在三四个分区格式里面还行。

自己不会就不要瞎说
回复

使用道具 举报

发表于 2021-9-15 21:02:49 | 显示全部楼层
喜欢,感谢分享
回复

使用道具 举报

发表于 2021-9-25 19:47:08 | 显示全部楼层
给加个整数分区计算功能就完美

点评

1.25.0 2021.10.23 测试用核心脚本 用于 创建、均分 分区是 在条件允许的情况下 ,取 整G . 需要广泛测试。在 均分是,如果分区大小是 1024 5120 等之类的,应该是取整G的。手动创建分区,单个分区取整G后,如果  详情 回复 发表于 2021-10-23 13:35
对于NTFS格式的硬盘分区,原理比较复杂。NTFS分区的最小容量不能精确到1MB,而是柱面大小。硬盘一般有255个磁头,63个扇区,故每个柱面的大小为:512bit*255*63=8,225,280bit=7.84423828125MB。  如果要分个1  详情 回复 发表于 2021-10-23 11:27
回复

使用道具 举报

 楼主| 发表于 2021-10-23 11:27:31 | 显示全部楼层
本帖最后由 dos时代菜鸟 于 2021-10-23 13:11 编辑
zhxy9804 发表于 2021-9-25 19:47
给加个整数分区计算功能就完美

对于NTFS格式的硬盘分区,原理比较复杂。NTFS分区的最小容量不能精确到1MB,而是柱面大小。硬盘一般有255个磁头,63个扇区,故每个柱面的大小为:512bit*255*63=8,225,280bit=7.84423828125MB。 
如果要分个10GB的NTFS分区,理应为10*1024MB=10240MB,实际需要的柱面数10240÷7.84423828125=1305.4。因柱面只能算整数,即1306个柱面,这样实际分配的M数为
1306*7.84423828125=10244.575MB,不管小数点后面几位都进1,也就是10245MB,这样才会被Windows系统认成是10GB。

也就是说,需要有多出一点点而的空间供分区,才能实现整数,而,这个是需要做判断的,如果你要分区的区域,不能满足多出那么一点点儿,diskpart 就会分区失败。

这个如果用来制作 vhd 倒是问题不大,但是落到分区上,一些实际情况恐怕就不允许了。
弄到 自动均分 上到时可以考虑,不计算尾巴分区的整G,应该就可以,但是,自动均分这个事情,本身就有人不认同。

而且自动均分上,如果均分的数额本身就不是 整 G ,即便考虑到磁柱整数的问题,结果也不是整G,比如 给10G的空间均分成3份,总不能3+3+4 这么分呀,这就不是均分了。

回复

使用道具 举报

 楼主| 发表于 2021-10-23 13:35:02 | 显示全部楼层
zhxy9804 发表于 2021-9-25 19:47
给加个整数分区计算功能就完美

1.25.0-2021.10.23-diskpart2x.7z (17.93 KB, 下载次数: 5)
1.25.0 2021.10.23 测试用核心脚本
用于 创建、均分 分区是 在条件允许的情况下 ,取 整G .
需要广泛测试。在 均分是,如果分区大小是 1024 5120 等之类的,应该是取整G的。手动创建分区,单个分区取整G后,如果空间允许,就取整G了,比如 10G 就会计算成 10245M 。


回复

使用道具 举报

 楼主| 发表于 2021-10-23 16:35:56 | 显示全部楼层
本帖最后由 dos时代菜鸟 于 2021-10-23 16:37 编辑

支持 自动计算整G 分区, diskpart_shell.1.25.1.7z (1.7 MB, 下载次数: 3)

当设置分区在 1G以上, 就尝试进行 整G 计算,如果该区域有足够空间支持 的话,就整G 分。

如下图:在指定区域(该硬盘10G位置开始) 分出一个5G 分区,在资源管理器中,显示该分区 是 整整5G。

diskpart_shell.PNG
diskpart_shell-2.PNG

回复

使用道具 举报

发表于 2021-10-23 16:58:37 | 显示全部楼层
很好很强大
回复

使用道具 举报

发表于 2021-10-23 17:15:47 | 显示全部楼层
支持,顶一个。
回复

使用道具 举报

 楼主| 发表于 2021-10-23 18:00:34 | 显示全部楼层
本帖最后由 dos时代菜鸟 于 2021-10-23 19:10 编辑

diskpart_shell.1.25.3.7z (1.7 MB, 下载次数: 1)

继续测试版,做了一些细微的调整。减少出错。

1.25.3
调整一些关于创建分区时对于数据溢出的判断,如果设置的 偏移量+Size>空间量,就提示并退出模块。
  //如果人为设置偏移量差额多余1G且分区容积不为零,尝试计算offset取整G。
  //容积为0,意为将自偏移量后的所有空间分配给这个新分区。offset如果设置取整G,后面的空间就不足整G了,
  //所以如果 容积被设置为0,就不进行offset取整G
  //如果分区指定的大小取整G计算后在未分配空间的范围内,就取整G。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-9-12 20:01

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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