无忧启动论坛

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

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

    [复制链接]
 楼主| 发表于 2019-7-31 22:32:58 | 显示全部楼层
nttwqz 发表于 2019-7-31 22:24
你想多了,没有!

原来我也有这么个 卡,后来被我 diskpart 弄了一遍,就没这毛病了。
也不知道这毛病怎么弄出来的。 如果一个卡 里面有俩这样的分区,就麻烦了。

sele vol 以后,list part,看 * 焦点 ,应该能确定 那个卷对应的分区。因为 它不是 自动 * 的么?呵呵
那么,如果 sele part 然后 list vol 能看到  vol 的焦点落在对应的卷上么?

要是 不论  sele vol 还是 selel part ,都不能 detail part 来获取结果,那,我可以考虑,将分区信息与卷信息分两行显示在列表中,可以看出他们是找不到对方的分区 或者卷,

点评

我在很久之前就考虑过多分区的情况,后来好像证实是我想多了,这样的情况只能有一个分区。 sel vol/list part sel part/list vol 都是相互对应的,可以用这两种方法判断分区和卷的对应关系。 也不知道你有没  详情 回复 发表于 2019-7-31 22:45
回复

使用道具 举报

发表于 2019-7-31 22:45:35 | 显示全部楼层
dos时代菜鸟 发表于 2019-7-31 22:32
原来我也有这么个 卡,后来被我 diskpart 弄了一遍,就没这毛病了。
也不知道这毛病怎么弄出来的。 如果 ...

我在很久之前就考虑过多分区的情况,后来好像证实是我想多了,这样的情况只能有一个分区。

sel vol/list part
sel part/list vol
都是相互对应的,可以用这两种方法判断分区和卷的对应关系。

也不知道你有没有从我第二步的diskpart脚本中看出点什么来,我的算法中,磁盘-分区-卷的本来就是对应的,不用做额外判断!
回复

使用道具 举报

 楼主| 发表于 2019-7-31 23:27:10 | 显示全部楼层
本帖最后由 dos时代菜鸟 于 2019-7-31 23:35 编辑
nttwqz 发表于 2019-7-31 22:45
我在很久之前就考虑过多分区的情况,后来好像证实是我想多了,这样的情况只能有一个分区。

sel vol/li ...


这就好办了
diskpart Shell 1.23.4.7z (1.63 MB, 下载次数: 6)

点评

这个本版已经可以获取上次获取不到的信息,但是文件系统未获取,也不知道是不是你刻意为之以区分其它磁盘。  详情 回复 发表于 2019-8-3 21:22
回复

使用道具 举报

发表于 2019-8-3 21:22:44 | 显示全部楼层

这个本版已经可以获取上次获取不到的信息,但是文件系统未获取,也不知道是不是你刻意为之以区分其它磁盘。
回复

使用道具 举报

 楼主| 发表于 2019-8-4 21:15:59 | 显示全部楼层
nttwqz 发表于 2019-8-3 21:22
这个本版已经可以获取上次获取不到的信息,但是文件系统未获取,也不知道是不是你刻意为之以区分其它磁盘 ...

多谢帮忙测试反馈

果然,原来是我 把 只能通过 list part 获取卷对应分区的 FS 设置成了 . ,
这可真是,在程序面前,一点儿也不能差呀。哈哈

已经纠正了,放在了一楼
回复

使用道具 举报

 楼主| 发表于 2019-8-8 11:07:43 | 显示全部楼层
我想,如果 已经基本解决 频繁调用 diskpart 的繁琐耗时的问题,可能可以进一步 做些什么。
比如,图形化的 分区显示,显示未使用部分,选择图形上未使用部分,可以直接创建分区等等。
等有了时间,再慢慢研究下。

点评

这么6了?看好  详情 回复 发表于 2019-8-8 11:21
回复

使用道具 举报

发表于 2019-8-8 11:21:30 | 显示全部楼层
dos时代菜鸟 发表于 2019-8-8 11:07
我想,如果 已经基本解决 频繁调用 diskpart 的繁琐耗时的问题,可能可以进一步 做些什么。
比如,图形化 ...

这么6了?看好
回复

使用道具 举报

发表于 2019-8-12 17:14:24 | 显示全部楼层
应该让脚本更加“智能”:

在初始化硬盘为GPT后,开始点击“创建分区”按钮了:
可以提供现成的分区方案,类似于DiskGenius
另外,
当我选中EFI分区或MSR分区时,下面的文件系统类型应该智能匹配,比如EFI自动帮我选FAT分区,自动把ID改成EF等。。。

脚本让使用者感到智能化,而不是专业化

点评

赞同!希望完成度更高,减少手工及疏漏。  发表于 2020-6-27 11:40
回复

使用道具 举报

发表于 2019-8-13 22:25:07 | 显示全部楼层
本帖最后由 datbik189 于 2019-8-14 07:49 编辑
dos时代菜鸟 发表于 2019-7-28 11:17
好的,
初步测试了一下,你这个方法,可以用秒算结果来形容了。



解决了就好,附件是我的测试结果,看起来还可以。

用的电脑是T420i,7年前的电脑,奔腾处理器


测试.jpg

DISKPART.rar

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

回复

使用道具 举报

 楼主| 发表于 2019-8-26 07:52:17 | 显示全部楼层
ver=1.23.6
发现一处纰漏,vhd 的 other_info 信息显示有问题,已经纠正。
改进 分区时 可以根据所选分区类型 自动选择 文件系统类型。
回复

使用道具 举报

发表于 2019-8-27 11:25:53 | 显示全部楼层
有壳好,不用记那么命令了!~!~
回复

使用道具 举报

发表于 2019-9-26 14:22:34 | 显示全部楼层
谢谢  辛苦了。。。。。。。
回复

使用道具 举报

 楼主| 发表于 2020-5-7 18:49:14 | 显示全部楼层
本帖最后由 dos时代菜鸟 于 2020-5-7 18:56 编辑

更新了一下
有关 VHD 方面的。可以创建 子 vhd 了,
更新在1楼

设置创建一个 子vhd
diskpart-1.PNG

创建 子vhd 的脚本内容和执行结果
diskpart-2.PNG

子vhd 自动被挂载了。
diskpart-3.PNG

回复

使用道具 举报

发表于 2020-5-12 00:30:47 | 显示全部楼层
感谢。看到更新了。
回复

使用道具 举报

 楼主| 发表于 2020-5-16 21:54:49 | 显示全部楼层


早有见过.只是加密压缩了.用着还可以,有些凌乱.diskpart 的执行 是基于 diskpart脚本 执行的.

我这个 是 基于 diskpart 命令行的,运行效率上应该 有所改进了.功能上嘛,还不想弄的太复杂.
回复

使用道具 举报

发表于 2020-5-21 14:51:45 | 显示全部楼层
非常好用,楼主V5,感谢你的无私分享!
回复

使用道具 举报

发表于 2020-6-27 11:10:15 | 显示全部楼层
楼主能否告知:分区列表中的Label内容是哪个变量得出的?
我逐个试都没找到,想把它自动填入格式化卷标里。
回复

使用道具 举报

发表于 2020-6-27 11:49:12 | 显示全部楼层
本帖最后由 2010hook 于 2020-6-27 22:45 编辑

格式化卷、设置属性等对话框的标题,我添加了盘符,减少误操作,很简单:格式化 %chk_ltr%:
如果还能获取当前卷标,减少打字,那就更好了。
回复

使用道具 举报

发表于 2020-6-27 22:36:31 | 显示全部楼层
本帖最后由 2010hook 于 2020-6-27 22:41 编辑

有空能否帮忙看一下,卷标 是哪个变量获取的?我想把它自动添加到格式化时的卷标输入框。感谢!

回复

使用道具 举报

 楼主| 发表于 2020-6-27 22:36:36 | 显示全部楼层
2010hook 发表于 2020-6-27 11:49
格式化卷、设置属性等对话框的标题,我添加了盘符,很简单,减少误操作:格式化 %chk_ltr%:
如果还能获取 ...

看  _Sub radi0  段 内容,就知道了
回复

使用道具 举报

发表于 2020-6-27 22:39:12 | 显示全部楼层
本帖最后由 2010hook 于 2020-6-27 22:40 编辑

chk_*、part_* 相关的变量,我逐个试了都没有。
回复

使用道具 举报

发表于 2020-6-27 22:44:48 | 显示全部楼层
2010hook 发表于 2020-6-27 22:36
有空能否帮忙看一下,卷标 是哪个变量获取的?我想把它自动添加到格式化时的卷标输入框。感谢!

什么卷标?突然冒出来这句话,不知道怎么理解。。。

点评

抱歉啊,打扰了  发表于 2020-6-27 23:16
他是想 格式化某个分区的时候 直接用被格式化分区 的卷标 lable ,不用再手动填写一遍。 其实就是 引用一下列表中 涉及卷标的那个 列 中的数据也就是了。  详情 回复 发表于 2020-6-27 22:56
回复

使用道具 举报

 楼主| 发表于 2020-6-27 22:51:00 | 显示全部楼层
本帖最后由 dos时代菜鸟 于 2020-6-27 23:02 编辑
2010hook 发表于 2020-6-27 22:39
chk_*、part_* 相关的变量,我逐个试了都没有。

需要你 引用 表格 第 12 个项目 自行设置一个 变量 用于你的目的。
radi0 段并没有 引用 第12个项目 设置变量,你可以自己设置一个呀。试试看吧。如下图 两个地方分别添加 那么两句话就是了。

12123.PNG


546567.PNG

从 下图 位置可以得知  卷标 项目 排行 第12
fdsgfdg.PNG


评分

参与人数 1无忧币 +5 收起 理由
2010hook + 5 有劳了,非常感谢!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2020-6-27 22:56:26 | 显示全部楼层
红毛樱木 发表于 2020-6-27 22:44
什么卷标?突然冒出来这句话,不知道怎么理解。。。

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

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

使用道具 举报

发表于 2020-6-27 22:57:09 | 显示全部楼层
好复杂,新手看得有点晕,纯支持。
回复

使用道具 举报

发表于 2020-6-27 23:17:20 | 显示全部楼层
本帖最后由 2010hook 于 2020-6-28 08:19 编辑

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

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

使用道具 举报

发表于 2020-6-28 08:38:08 | 显示全部楼层
我把改好的发出来,主要是标题栏加入硬盘名称或盘符。

DiskPart_Shell.7z

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

回复

使用道具 举报

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

使用道具 举报

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

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

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-3-29 02:08

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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