无忧启动论坛

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

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

    [复制链接]
61#
发表于 2019-4-5 22:19:02 | 只看该作者
建议给按钮做交互式Enable或Disable,比如只有选中某个分区或某个硬盘就激活某些按钮,否则默认灰色

点评

已经尝试 改进,但是 也 改动了 一些其他的相关 部分,所以可能存在问题,需要修正或改进,请广泛测试, 已经放到1楼。  详情 回复 发表于 2019-4-6 15:13
回复

使用道具 举报

62#
 楼主| 发表于 2019-4-6 15:13:20 | 只看该作者
caocaofff 发表于 2019-4-5 22:19
建议给按钮做交互式Enable或Disable,比如只有选中某个分区或某个硬盘就激活某些按钮,否则默认灰色

已经尝试 改进,但是 也 改动了 一些其他的相关 部分,所以可能存在问题,需要修正或改进,请广泛测试,
已经放到1楼。

点评

简单测试了一下,没有发现什么问题。  详情 回复 发表于 2019-4-6 18:35
回复

使用道具 举报

63#
发表于 2019-4-6 18:35:28 | 只看该作者
dos时代菜鸟 发表于 2019-4-6 15:13
已经尝试 改进,但是 也 改动了 一些其他的相关 部分,所以可能存在问题,需要修正或改进,请广泛测试,
...

简单测试了一下,没有发现什么问题。

点评

好的,谢谢, 继续改进,把脚本调取 修改 模块改成 内部运行了。有 edit 控件 来完成 实时脚本的加载和修改。  详情 回复 发表于 2019-4-6 23:23
回复

使用道具 举报

64#
 楼主| 发表于 2019-4-6 23:23:11 | 只看该作者
freesoft00 发表于 2019-4-6 18:35
简单测试了一下,没有发现什么问题。

好的,谢谢,
继续改进,把脚本调取 修改 模块改成 内部运行了。有 edit 控件 来完成 实时脚本的加载和修改。
回复

使用道具 举报

65#
 楼主| 发表于 2019-4-6 23:39:43 | 只看该作者
发现 问题 硬盘分区全删除 模块 有问题,已经修复


1.15  脚本运行调取 模块 用 图形界面了,可以在程序内 实时 修改脚本就运行。不再需要 load_script.cmd

空脚本X 模块将发挥更大作用。
回复

使用道具 举报

66#
发表于 2019-4-7 19:12:44 | 只看该作者
建议将diskpart-Shell_Ver.1.15w.7z 稍加修改:

第35行:_Sub win0 ,W320 H100,DiskPart GUI Initializing,exit,#1,0,,-top -discloseb
第41行:_Sub Win1,W790 H610,DiskPart GUI,exit toWin,#1,0,,

所有窗口图标可以换成固定的比如shell32.dll#187,不然都是问号不好看

点评

那 是个啥图标?我看看先。 刚加了个功能,可以把所选卷所在硬盘中所有未挂盘符的卷挂上盘符。  详情 回复 发表于 2019-4-7 20:07
回复

使用道具 举报

67#
 楼主| 发表于 2019-4-7 20:07:31 | 只看该作者
caocaofff 发表于 2019-4-7 19:12
建议将diskpart-Shell_Ver.1.15w.7z 稍加修改:

第35行:_Sub win0 ,W320 H100,DiskPart GUI Initializi ...

那 是个啥图标?我看看先。

刚加了个功能,可以把所选卷所在硬盘中所有未挂盘符的卷挂上盘符。
回复

使用道具 举报

68#
 楼主| 发表于 2019-4-7 22:02:04 | 只看该作者
利用好  "空脚本X" 和 复制粘贴功能,可以把多个操作 集中到一个脚本中 一次运行,减少diskpart 的调用次数。

可以先选择操作等进入脚本调取界面时,复制代码, 但不执行,只是把 脚本复制了,复制粘贴 攒到一起,一起执行。
回复

使用道具 举报

69#
发表于 2019-4-8 14:43:56 | 只看该作者
找不到磁盘

1.PNG (16.56 KB, 下载次数: 206)

1.PNG

捕获.PNG (48.44 KB, 下载次数: 204)

捕获.PNG

点评

可能是 pecmd 的问题,怎么连表都没出来呢,怀疑你的环境pecmd 不能生成 tabl 表,你系统里面是不是有 pecmd ?试着换成压缩包里的  详情 回复 发表于 2019-4-8 16:33
回复

使用道具 举报

70#
 楼主| 发表于 2019-4-8 16:33:19 | 只看该作者
本帖最后由 dos时代菜鸟 于 2019-4-8 17:00 编辑

可能是 pecmd 的问题,怎么连表都没出来呢,怀疑你的环境pecmd 不能生成 tabl 表,你系统里面是不是有 pecmd ?试着换成压缩包里的

因为 没有判断出 系统启动模式 是 bios 还是 efi ,估计是你系统里面用了比较古老的 pecmd .

回复

使用道具 举报

71#
发表于 2019-4-8 18:34:03 | 只看该作者
的确是,C:\Windows\System32有份2011年的PECMD
删除就OK了
回复

使用道具 举报

72#
 楼主| 发表于 2019-4-8 22:39:25 | 只看该作者
应用鼠标捕获勉强解决 pecmd的 tabl表鼠标回归后自动乱选的问题。
改进 Load_script 段 脚本运行结果 编辑框 显示为"末端"
优化部分代码,解决 有些窗口没有及时关闭导致 pecmd 进程滞留系统的问题。

话说 pecmd 的这个 tabl 鼠标游走回归后就会乱选的毛病还真是。。。。。。
唉,内部bug 总是比 文本脚本运行快,所以脚本才有机会再慢慢选回来。呵呵

0x40+12 =76 这个用 pecmd calc 算出来的十进制得数 还是管用的,用在 edit 类别上了。
回复

使用道具 举报

73#
 楼主| 发表于 2019-4-9 16:05:30 | 只看该作者
本帖最后由 dos时代菜鸟 于 2019-4-9 16:06 编辑

windows 好像有病
整个磁盘分区序列中都是这样,
系统所在分区,叫 “boot” 中文叫 “启动”
负责启动的分区,叫 "system" 中文叫 “系统”

这个在 mbr 时代也就无所谓,可现在是 efi 了,gpt 了,就容易蒙。估计前些日子微软出的要给啥 补丁 就把系统 给更新到  负责启动 (名字和类型都叫做 system ) 的分区去了可能跟这个也有关系。

要想获取这样的数据,就要给他们另赋予个 内涵 比如 叫做  Loader  和 Operation 吧。呵呵
回复

使用道具 举报

74#
 楼主| 发表于 2019-4-9 23:01:32 | 只看该作者
1.16c 增加 分区 、卷 隐藏属性查看列, # 表示分区级别隐藏 ,* 表示 卷级别的隐藏
获取硬盘分区 是否担任了启动引导任务 和是否存有当前操作系统。 ~ 表示担任引导任务的硬盘和分区,* 表示存储着当前操作系统。









回复

使用道具 举报

75#
发表于 2019-4-9 23:10:16 | 只看该作者
干的漂亮~
回复

使用道具 举报

76#
 楼主| 发表于 2019-4-10 09:10:49 | 只看该作者
本帖最后由 dos时代菜鸟 于 2019-4-10 09:11 编辑

在需要通过 分析卷来确定分区信息的 分区、卷 的 info 方面改进了 parts.cmd  ,虽然用的很少,但也需要考虑。1.16d

刚刚发现 只有 win10 2019ltsc 中的 diskpart 能够将 id=ef 的分区识别为卷,但是他却不能通过 select part /detail part / detail vol 的方式看到这个分区的卷信息,需要 select vol /detail part /detail vol 才能看到这个卷的信息并明确这个卷就是这个分区。

而之前的 diskpart 连把 这样的分区识别为 卷的能力都没有,这个很重要,至少可以挂载盘符 格式化和存储数据到这个分区。

点评

偶看见bug10这种东西就觉的恶心~  详情 回复 发表于 2019-4-10 10:10
回复

使用道具 举报

77#
发表于 2019-4-10 10:10:30 来自手机 | 只看该作者
dos时代菜鸟 发表于 2019-4-10 09:10
在需要通过 分析卷来确定分区信息的 分区、卷 的 info 方面改进了 parts.cmd  ,虽然用的很少,但也需要考 ...

偶看见bug10这种东西就觉的恶心~

点评

没办法,百足之虫死而不僵。win系统现在就是 微软的 尾大不掉。  详情 回复 发表于 2019-4-10 11:28
回复

使用道具 举报

78#
 楼主| 发表于 2019-4-10 11:28:52 | 只看该作者
nttwqz 发表于 2019-4-10 10:10
偶看见bug10这种东西就觉的恶心~

没办法,百足之虫死而不僵。win系统现在就是 微软的  尾大不掉。

点评

我不是讨厌WIN,仅仅是讨厌bug10,流氓过头了!  详情 回复 发表于 2019-4-10 13:56
回复

使用道具 举报

79#
发表于 2019-4-10 13:56:24 来自手机 | 只看该作者
dos时代菜鸟 发表于 2019-4-10 11:28
没办法,百足之虫死而不僵。win系统现在就是 微软的  尾大不掉。

我不是讨厌WIN,仅仅是讨厌bug10,流氓过头了!

点评

微软的主攻方向 已经不再 电脑软件上了。现在的 win 就会是这样,一种常年维护修修补补的状态。而且为了商业利益还要 有些 让人反感的举动,这都是必然的。  详情 回复 发表于 2019-4-10 14:20
回复

使用道具 举报

80#
 楼主| 发表于 2019-4-10 14:20:25 | 只看该作者
nttwqz 发表于 2019-4-10 13:56
我不是讨厌WIN,仅仅是讨厌bug10,流氓过头了!

微软的主攻方向 已经不再 电脑软件上了。现在的 win 就会是这样,一种常年维护修修补补的状态。而且为了商业利益还要 有些 让人反感的举动,这都是必然的。
回复

使用道具 举报

81#
发表于 2019-4-11 17:57:53 | 只看该作者
报告BUG:script目录改成带空格目录或直接把ini丢到带空格目录运行都刷不出来数据(压根没运行diskpart.exe)
回复

使用道具 举报

82#
 楼主| 发表于 2019-4-11 18:22:53 来自手机 | 只看该作者
直接用ini需要其他俩文件配合,parts.cmd是是负责运行diskpart获取分区信息的。你就运行那个外面的,diakpartshell.cmd就行了。

点评

这个知道,我意思是你没对空格目录做兼容,你测试一下吧  详情 回复 发表于 2019-4-11 19:10
回复

使用道具 举报

83#
发表于 2019-4-11 19:10:38 | 只看该作者
dos时代菜鸟 发表于 2019-4-11 18:22
直接用ini需要其他俩文件配合,parts.cmd是是负责运行diskpart获取分区信息的。你就运行那个外面的,diakpa ...

这个知道,我意思是你没对空格目录做兼容,你测试一下吧

点评

测试了 ,把 diskpart_shell.cmd 和 script 文件夹一并放入 任何带空格的文件夹下 运行 diskpart_shell.cmd 没有问题。  详情 回复 发表于 2019-4-11 20:27
回复

使用道具 举报

84#
 楼主| 发表于 2019-4-11 20:27:56 | 只看该作者
本帖最后由 dos时代菜鸟 于 2019-4-11 20:32 编辑
caocaofff 发表于 2019-4-11 19:10
这个知道,我意思是你没对空格目录做兼容,你测试一下吧

测试了 ,把 diskpart_shell.cmd 和 script 文件夹一并放入 任何带空格的文件夹下 运行 diskpart_shell.cmd 没有问题。

要想改变 script 请在 diskpart2x.wcs 第32行添加一对 引号 内容,如下:红色部分
-----------------------------
  exec* &list_file=!cmd /c "chcp %cp% & "%curdir%\parts.cmd""
----------------------------------------------------------------------------

点评

你把script改成script script,cmd里也是  详情 回复 发表于 2019-4-11 20:29
回复

使用道具 举报

85#
发表于 2019-4-11 20:29:08 | 只看该作者
dos时代菜鸟 发表于 2019-4-11 20:27
测试了 ,把 diskpart_shell.cmd 和 script 文件夹一并放入 任何带空格的文件夹下 运行 diskpart_shell.c ...

你把script改成script script,cmd里也是

点评

diskpart_shell.cmd 固定调用 与其同目录下的 script\diskpart2x.wcs 脚本,你这样改 script ,diskpart_shell.cmd 肯定因为找不到 脚本而失败,这样你需要 修改 diskpart_shell.cmd ,把 调用指令加 引号。  详情 回复 发表于 2019-4-11 20:35
回复

使用道具 举报

86#
 楼主| 发表于 2019-4-11 20:35:07 | 只看该作者
本帖最后由 dos时代菜鸟 于 2019-4-11 20:43 编辑
caocaofff 发表于 2019-4-11 20:29
你把script改成script script,cmd里也是


diskpart_shell.cmd 固定调用 与其同目录下的 script\diskpart2x.wcs 脚本,你这样改 script ,diskpart_shell.cmd 肯定因为找不到 脚本而失败,这样你需要 修改 diskpart_shell.cmd ,把 调用指令加 引号。

好吧,我修正了一下,直接把 wcs 脚本 拖拽给 pecmd 运行也可以,不论放什么地方,只要 保证脚本放在一起就行。
回复

使用道具 举报

87#
发表于 2019-4-11 20:43:51 | 只看该作者
please test

diskpart 8.rar

2.06 MB, 下载次数: 2, 下载积分: 无忧币 -2

点评

改好的 已经放 1 楼。其实你可以自己改下,就那么俩 引号的事情。  详情 回复 发表于 2019-4-12 07:59
回复

使用道具 举报

88#
 楼主| 发表于 2019-4-12 07:59:44 | 只看该作者
本帖最后由 dos时代菜鸟 于 2019-4-12 08:14 编辑


改好的 已经放 1 楼。其实你可以自己改下,就那么俩 引号的事情。

你把 scrpt 路径改了,diskpart_shell.cmd 里面也得改,而且要是带空格,就要加 引号。为啥要 改路径名呢?双击运行 cmd 不就行了么?

点评

现在测试没有问题了,其实之前版本也没问题,这个BUG可能是f版本引入的  详情 回复 发表于 2019-4-12 09:09
回复

使用道具 举报

89#
发表于 2019-4-12 09:09:51 | 只看该作者
dos时代菜鸟 发表于 2019-4-12 07:59
改好的 已经放 1 楼。其实你可以自己改下,就那么俩 引号的事情。

你把 scrpt 路径改了,diskpart_s ...


现在测试没有问题了

点评

确实是,我为了测试 语言代码,加入了 chcp 指令 给 cmd ,批处理调用路径上就 没再加个引号。因为有 外面那个 diskpart_shell.cmd 调用,应该没问题,就没改。没想到 你老弟 还有这 想法呀。呵呵  详情 回复 发表于 2019-4-12 10:40
回复

使用道具 举报

90#
发表于 2019-4-12 10:24:17 | 只看该作者
楼主是高手,好用!
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-4-19 15:08

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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