无忧启动论坛

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

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

    [复制链接]
181#
发表于 2020-6-30 10:36:41 来自手机 | 只看该作者
2010hook 发表于 2020-6-30 07:55
小白是不可能用你这个脚本的,真不可能。即使在无忧,对Diskpart感兴趣的也不多。
用这种命令脚本的都是极 ...

嘿嘿,你可以用我这个批处理,只要会变量嵌套就可以写出来自己需要的特定分区工具
磁盘分区信息dpinfo

评分

参与人数 1无忧币 +5 收起 理由
2010hook + 5

查看全部评分

回复

使用道具 举报

182#
发表于 2020-6-30 18:34:21 | 只看该作者
PCMD原来这么有意思
回复

使用道具 举报

183#
发表于 2020-7-1 13:15:16 | 只看该作者
本帖最后由 2010hook 于 2020-7-1 13:16 编辑

楼主似乎对“专业”存在误解,我分享王垠一篇文章:
http://www.yinwang.org/blog-cn/2013/03/07/linux-windows-mac
回复

使用道具 举报

184#
 楼主| 发表于 2020-7-2 17:48:33 | 只看该作者
本帖最后由 dos时代菜鸟 于 2020-7-2 17:52 编辑
2010hook 发表于 2020-7-1 13:15
楼主似乎对“专业”存在误解,我分享王垠一篇文章:
http://www.yinwang.org/blog-cn/2013/03/07/linux-wi ...

指望 专业人员 做出 可以让小白也成为专业人员的 工具来?这条路永远也没有尽头。

我不是专业人员,我也只是个小白。

寄希望于别人成就你的懒,别人也想歇歇呢。
自己研究去

windows 是给懒人设计的系统,方便快捷,但也闭原收费。还有更懒的人连windows 怎么用也懒得去学呢。

有些事,太纠结,会生病的。


回复

使用道具 举报

185#
 楼主| 发表于 2020-7-15 06:56:08 | 只看该作者
本帖最后由 dos时代菜鸟 于 2020-7-15 08:42 编辑

小升级一下
1.23.8  
放在一楼

因为diskpart 获取的 分区大小 不准确,所以可能导致 未被分区的空间 计算出现偏差。

暂时 不支持 437 code 的 diskpart


增加 显示 硬盘未被分配分区的空间,并可以直接将其创建分区



回复

使用道具 举报

186#
 楼主| 发表于 2020-7-15 12:35:49 | 只看该作者
正考虑 用 pecmd 获取更准确的 分区起止位置,来准确定位 未分配的 空间。
回复

使用道具 举报

187#
 楼主| 发表于 2020-7-15 14:01:36 | 只看该作者
本帖最后由 dos时代菜鸟 于 2020-7-15 14:18 编辑

1.23.81 更新完毕,待测试

主要更新 :
用 pecmd 精确获取分区 偏移量 和大小,精准计算磁盘中 没有被分区的区域位置和大小。忽略 1M 以下空间。
实现 根据未分区空间创建 分区更直观方便。

这个更新主要难度 在 扩展分区的处理上,有的分区在扩展分区中,有的在扩展分区外,未分区空间也是有的在扩展分区中,有的在扩展分区外。
好在 diskpart 的 mbr 体系中 扩展分区只允许有一个。
因为 diskpart 先天问题,把分区的大小都 四舍五入的用 G M 来表示,所以还要考虑 用 pecmd 更精准的获取偏移量 和 大小,但是 又要把 pecmd 获取的数据 与 diskpart 对接上。

目前这个测试脚本 还是需要测试。

更新版本已经放到 1 楼。

回复

使用道具 举报

188#
 楼主| 发表于 2020-7-15 15:41:03 | 只看该作者
本帖最后由 dos时代菜鸟 于 2020-7-15 15:44 编辑

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

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

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

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

回复

使用道具 举报

189#
 楼主| 发表于 2020-7-15 20:29:18 | 只看该作者
本帖最后由 dos时代菜鸟 于 2020-7-15 20:30 编辑

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

一、新建一个主分区









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






回复

使用道具 举报

190#
发表于 2020-7-15 23:06:14 | 只看该作者
卷标末尾含有很多空格,第372行应改为:
  1. team envi @parts.val=?%part_n%.12;chk_LabeL|mstr -trim chk_LabeL=%chk_LabeL%
复制代码
回复

使用道具 举报

191#
 楼主| 发表于 2020-7-15 23:11:41 | 只看该作者
2010hook 发表于 2020-7-15 23:06
卷标末尾含有很多空格,第372行应改为:

好的
回复

使用道具 举报

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

使用道具 举报

193#
发表于 2020-7-16 11:49:26 | 只看该作者
1、“如果行数多余这个值”,应该是“多于”;
2、创建分区,设置大小默认值是“-1”;
3、卷标带空格,未解决;
4、命令大小写不统一;
回复

使用道具 举报

194#
 楼主| 发表于 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条 已经解决,只是 放到了 最后一步,因为考虑到 用户可能多输入 一些空格,所以 是对最后结果 进行去空格处理的。也就是说 不管 截取到的 是什么,去空格以后 如果卷标是空的,就不设置卷标。

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

回复

使用道具 举报

195#
 楼主| 发表于 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 放在一楼了。

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


回复

使用道具 举报

196#
发表于 2020-7-16 18:43:49 | 只看该作者
本帖最后由 2010hook 于 2020-7-16 18:47 编辑

最新版1.23.87,仍未解决:

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


2、我用BC对比知道你放最后处理,但卷标带空格,真没解决:

回复

使用道具 举报

197#
 楼主| 发表于 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 呀!!!

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

使用道具 举报

198#
发表于 2020-7-16 18:50:03 | 只看该作者
本帖最后由 2010hook 于 2020-7-16 18:51 编辑

同一个磁盘的不同分区,颜色一样?
我觉得可以对不同性质的分区采用不同颜色显示。比如ESP、逻辑分区、扩展分区以不同颜色区分开来。
回复

使用道具 举报

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

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

回复

使用道具 举报

200#
发表于 2020-7-16 18:57:23 | 只看该作者
dos时代菜鸟 发表于 2020-7-16 18:49
你选那个 硬盘 都没有用于分区 的空间了,还分个啥区?不给你显示 -1 就怪了。你先看看 你要选的那个硬盘 ...

我指的是观感问题。如果你以“-1”提示选错磁盘,也行。
回复

使用道具 举报

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

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

使用道具 举报

202#
发表于 2020-7-16 19:20:50 | 只看该作者

目前已经做的很美观了,不容易!
回复

使用道具 举报

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

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

使用道具 举报

204#
 楼主| 发表于 2020-7-17 11:35:21 | 只看该作者
刚弄了些颜色 设置 ,更新 1.23.88
放到一楼
回复

使用道具 举报

205#
 楼主| 发表于 2020-7-17 17:47:14 | 只看该作者
1.23.9 算是正式的功能完善版本了。
如果功能上 没啥问题了,就考虑在 做一些边角的完善。
回复

使用道具 举报

206#
发表于 2020-7-17 20:12:28 | 只看该作者
本帖最后由 2010hook 于 2020-7-18 06:41 编辑

1、未融入整数分区的概念,预置VHDx应该为 10245/20482 这类;
2、“装卸VHDx盘”建议改为“装卸VHDx”,它是文件;
3、“刷新分区数据”跟“重载DISKPART名称应该交换。刷新数据显示实际意义不大,至少要复查磁盘和分区是否存在,以及分区格式和ID有没有变化。
回复

使用道具 举报

207#
发表于 2020-7-17 20:20:31 | 只看该作者
创建特殊分区类型时,建议自动填写相应的卷标或ID,比如:ESP、MSR 等等
回复

使用道具 举报

208#
发表于 2020-7-17 22:43:29 | 只看该作者
本帖最后由 2010hook 于 2020-7-18 06:41 编辑

“装卸VHDx”,建议默认以GB为单位,自动为用户转换成整数G。
并且支持VHDx扩容。
回复

使用道具 举报

209#
 楼主| 发表于 2020-7-18 23:32:53 | 只看该作者
更新 1.23.91
简化了一些关于颜色的设置
vhd 创建 支持 G整数容量

回复

使用道具 举报

210#
发表于 2020-7-19 23:39:05 | 只看该作者
不管是VHDx还是RAMOS,4GB是非常重要的分区容量值。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-4-20 10:30

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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