无忧启动论坛

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

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

    [复制链接]
181#
 楼主| 发表于 2020-6-27 22:56:26 | 只看该作者
红毛樱木 发表于 2020-6-27 22:44
什么卷标?突然冒出来这句话,不知道怎么理解。。。

他是想 格式化某个分区的时候 直接用被格式化分区 的卷标 lable ,不用再手动填写一遍。

其实就是 引用一下列表中 涉及卷标的那个 列 中的数据也就是了。
回复

使用道具 举报

182#
发表于 2020-6-27 22:57:09 | 只看该作者
好复杂,新手看得有点晕,纯支持。
回复

使用道具 举报

183#
发表于 2020-6-27 23:17:20 | 只看该作者
本帖最后由 2010hook 于 2020-6-28 08:19 编辑

我默认字体是Tahoma,非等宽,没看出对应关系。

%chk_lab% 输出末尾包含很多空格,我把 mstr -trim chk_lab=%chk_lab% 插入到第255行,初步解决。
如果要对所有结果去除首尾空白,mstr -trim 应该放在哪里最合适呢?
回复

使用道具 举报

184#
发表于 2020-6-28 08:38:08 | 只看该作者
我把改好的发出来,主要是标题栏加入硬盘名称或盘符。

DiskPart_Shell.7z

14.87 KB, 下载次数: 2, 下载积分: 无忧币 -2

回复

使用道具 举报

185#
发表于 2020-6-28 08:40:57 | 只看该作者
硬盘均分 是比较落后的方案,浪费空间。
我觉得 一键创建启动硬盘U盘(ESP+若干常规分区,ESP可置后) 更实用。
回复

使用道具 举报

186#
 楼主| 发表于 2020-6-29 08:14:48 | 只看该作者
2010hook 发表于 2020-6-28 08:40
硬盘均分 是比较落后的方案,浪费空间。
我觉得 一键创建启动硬盘U盘(ESP+若干常规分区,ESP可置后) 更实 ...

均分 只是提供个 脚本模型,
在执行前,不是提供了 指令吗?可以在那上面改。
这就是个 diskpart 的外壳,如果 一点儿 diskpart 命令都不明白,那 也就不存在啥 浪费不浪费的了,小白用这个,那就嘚用落后的方案呗。弄得复杂了,出问题的几率也大。 我这费尽心思 弄出的逻辑 闹不好,人家小白一个不注意就 出大错。不敢弄得太 深,太烧脑。

你要是 想改成这个方案的,可以自己到 代码里 修改,说明了是 修改版就行。这玩意儿既然开源,就没 版权,就是方便 技术人员 研究的。
回复

使用道具 举报

187#
发表于 2020-6-30 07:55:11 | 只看该作者
小白是不可能用你这个脚本的,真不可能。即使在无忧,对Diskpart感兴趣的也不多。
用这种命令脚本的都是极客,喜欢可靠灵活的命令行并且希望减少重复输入。
我认为,好的代码应该是尽力减少人为出错和重复劳动。这是我学习批处理的出发点,只是没学过PECMD语法,没法修改。
目前已经很好了,要做到更细致周全的确烧脑,你权当让我们瞻仰膜拜好了。
回复

使用道具 举报

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

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

点评

好的,谢谢!我去看看。  发表于 2020-6-30 10:53

评分

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

查看全部评分

回复

使用道具 举报

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

使用道具 举报

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

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

点评

指望 专业人员 做出 可以让小白也成为专业人员的 工具来?这条路永远也没有尽头。 我不是专业人员,我也只是个小白。 寄希望于别人成就你的懒,别人也想歇歇呢。 自己研究去  详情 回复 发表于 2020-7-2 17:48
回复

使用道具 举报

191#
 楼主| 发表于 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 怎么用也懒得去学呢。

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


回复

使用道具 举报

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

小升级一下
1.23.8  
放在一楼

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

暂时 不支持 437 code 的 diskpart


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



回复

使用道具 举报

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

使用道具 举报

194#
 楼主| 发表于 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 楼。

回复

使用道具 举报

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

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

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

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

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

回复

使用道具 举报

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

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

一、新建一个主分区









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






回复

使用道具 举报

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

点评

好的  详情 回复 发表于 2020-7-15 23:11
回复

使用道具 举报

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

好的
回复

使用道具 举报

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

使用道具 举报

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

点评

第2 条 在什么情况下出现 第3条 已经解决,只是 放到了 最后一步,因为考虑到 用户可能多输入 一些空格,所以 是对最后结果 进行去空格处理的。也就是说 不管 截取到的 是什么,去空格以后 如果卷标是空的,就不  详情 回复 发表于 2020-7-16 11:55
回复

使用道具 举报

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

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

回复

使用道具 举报

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

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


回复

使用道具 举报

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

最新版1.23.87,仍未解决:

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


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

点评

你选那个 硬盘 都没有用于分区 的空间了,还分个啥区? 卷标那个事情,不是说了吗?无所谓的,不信你试一下效果就知道了。  详情 回复 发表于 2020-7-16 18:49
回复

使用道具 举报

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

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

使用道具 举报

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

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

点评

这个嘛,属于锦上添花 的想法,有时间再做。  详情 回复 发表于 2020-7-16 18:52
回复

使用道具 举报

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

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

点评

就是颜色值做个等比例的加减  发表于 2020-7-16 19:03
如果用颜色深浅稍加区别呢?  发表于 2020-7-16 18:58
回复

使用道具 举报

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

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

点评

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

使用道具 举报

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

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

使用道具 举报

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

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

使用道具 举报

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

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

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-6 05:36

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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