无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
楼主: mdyblog
打印 上一主题 下一主题

[更新376#2825]PECMD2012.1.80.13_Win32_64.多窗口多线程.裸机系统2.3.3.1+18M酷M...

    [复制链接]
14251#
发表于 2019-5-10 23:01:21 来自手机 | 只看该作者
wych12 发表于 2019-5-2 17:52
感谢大神!请教下为何 DISP 自动设置不支持 20吋显示器的分辨率 1600 x 900,有其它方法解决吗?

很多分辨率需要安装显卡驱动才支持的,和pecmd无关

点评

感谢大神指点迷津!!!  详情 回复 发表于 2019-5-11 09:46
回复

使用道具 举报

14252#
发表于 2019-5-11 09:46:22 | 只看该作者
红毛樱木 发表于 2019-5-10 23:01
很多分辨率需要安装显卡驱动才支持的,和pecmd无关

感谢大神指点迷津!!!
回复

使用道具 举报

14253#
发表于 2019-5-25 21:15:37 | 只看该作者
在某些特定复杂的环境中,没办法重现,代码太多。
TIME可能会卡住或者不执行。
这时把TIME后面执行的命令改成THREAD* -WAIT才行。
比如:
TIME &time1,100,CALL abc
要改成
TIME &time1,100,THREAD* -WAIT CALL abc
才行
回复

使用道具 举报

14254#
发表于 2019-5-27 19:51:00 | 只看该作者
本帖最后由 hhh333 于 2019-6-21 08:09 编辑

PINT命令在1903中又不好使了,在1709中要放到SHEL之后才行,感觉这个命令比较脆弱。
回复

使用道具 举报

14255#
发表于 2019-6-11 21:51:37 | 只看该作者
能不能在内存中写一个
_SUB A
_END
的函数
然后用CALL A的方式调用这个函数?

点评

这个支持的. ENVI^ ENVIMODE=1 SET$ &NL=D A SET &V= \MESS. A \%&NL%MESS. B //函数去掉头部 _SUB 和尾部 _END CALL --MEM &V  详情 回复 发表于 2019-6-24 09:36
回复

使用道具 举报

14256#
发表于 2019-6-12 08:38:41 | 只看该作者
百度链接已经挂了,还有最新稳定版链接吗?
回复

使用道具 举报

14257#
发表于 2019-6-24 09:36:49 | 只看该作者
红毛樱木 发表于 2019-6-11 21:51
能不能在内存中写一个
_SUB A
_END

这个支持的.
ENVI^ ENVIMODE=1
SET$ &NL=D A
SET &V=
\MESS. A
\%&NL%MESS. B
//函数去掉头部 _SUB 和尾部 _END
CALL --MEM &V

点评

感谢,感谢,十分感谢。  发表于 2019-6-24 14:14
回复

使用道具 举报

14258#
发表于 2019-7-6 15:39:25 | 只看该作者
本帖最后由 红毛樱木 于 2019-7-6 18:57 编辑

老大有空能不能加一条方便的命令
PART -phy# list part 0,&a
直接输出物理分区号列表,省的还要再来一次命令查询了。
回复

使用道具 举报

14259#
发表于 2019-7-8 16:51:30 | 只看该作者
本帖最后由 红毛樱木 于 2019-7-8 16:53 编辑

发现一个问题
PART命令给R模式的优盘分区时,如果是GPT格式,则不会自动把GPT分区表同步到到最后1M空间GPT分区表备份里,不知道是windows就这样的还是是PECMD的BUG
回复

使用道具 举报

14260#
发表于 2019-7-10 16:38:50 | 只看该作者
问一下
forx *nl
操作多行变量时,多行变量必须 用 envi. &变量名 方式赋值么?可以用 多行文本框么?
如果 &变量 多行 有大小限制,就需要考虑用 文件方式实现循环了。不然莫名崩溃,就不好玩了。

点评

环境变量的值限制在7K以下,PE变量(带&)无限制,用了这么久未发现有问题。贴上你的有问题的脚本,大家测试下就清楚了。  详情 回复 发表于 2019-7-10 21:25
回复

使用道具 举报

14261#
发表于 2019-7-10 21:25:24 来自手机 | 只看该作者
dos时代菜鸟 发表于 2019-7-10 16:38
问一下
forx *nl
操作多行变量时,多行变量必须 用 envi. &变量名 方式赋值么?可以用 多行文本框么? ...

环境变量的值限制在7K以下,PE变量(带&)无限制,用了这么久未发现有问题。贴上你的有问题的脚本,大家测试下就清楚了。

点评

好像跟 带& 变量的使用有关,只在我的环境 特定系统的特定 点上有问题。很是奇怪。 windows 10 环境下, 在ini 中其他 sub 中用到 &, 在用 exec* @edit 传递 diskpart 输出结果时 pecmd卡死。 把 @edit 去掉,不  详情 回复 发表于 2019-7-10 21:56
回复

使用道具 举报

14262#
发表于 2019-7-10 21:56:35 | 只看该作者
本帖最后由 dos时代菜鸟 于 2019-7-10 22:09 编辑
datbik189 发表于 2019-7-10 21:25
环境变量的值限制在7K以下,PE变量(带&)无限制,用了这么久未发现有问题。贴上你的有问题的脚本,大家 ...

好像跟 带& 变量的使用有关,只在我的环境 特定系统的特定 点上有问题。很是奇怪。
windows 10 环境下,
在ini 中其他 sub 中用到 &, 在用 exec* @edit  传递 diskpart 输出结果时 pecmd卡死。
把 @edit 去掉,不传递,就没问题。如果其他模块 & 的用量减少些,就会好一点儿。我现在仅是forx 涉及的多行变量用到 & ,用多了,也卡死。

Script_x.7z (10.98 KB, 下载次数: 5)

点评

你代码里用到 exec* @edit 的地方太多了,到底哪里卡死了。你定位一个位置出来啊,这样让人慢慢找,耽误功夫哦。  详情 回复 发表于 2019-7-10 23:09
晕,有没有重现问题的最简短的脚本,那么多,眼花完了  详情 回复 发表于 2019-7-10 22:12
没有问题脚本测试,说不清楚。 一般获取信息的命令为: EXEC* &V=*DISKPART.EXE 参数表 或 EXEC* &V=*CMD.EXE /C DISKPART.EXE 参数表  详情 回复 发表于 2019-7-10 22:08
回复

使用道具 举报

14263#
发表于 2019-7-10 22:08:07 来自手机 | 只看该作者
dos时代菜鸟 发表于 2019-7-10 21:56
好像跟 带& 变量的使用有关,只在我的环境 特定系统的特定 点上有问题。很是奇怪。
windows 10 环境下, ...

没有问题脚本测试,说不清楚。

一般获取信息的命令为:
EXEC* &V=*DISKPART.EXE 参数表 或 EXEC* &V=*CMD.EXE /C DISKPART.EXE 参数表

点评

脚跟已经上传 难道是我用 exec* @edit=!cmd /c diskpart 用的是 ! 而不是 * 导致的?  详情 回复 发表于 2019-7-10 22:17
回复

使用道具 举报

14264#
发表于 2019-7-10 22:12:39 来自手机 | 只看该作者
dos时代菜鸟 发表于 2019-7-10 21:56
好像跟 带& 变量的使用有关,只在我的环境 特定系统的特定 点上有问题。很是奇怪。
windows 10 环境下, ...

晕,有没有重现问题的最简短的脚本,那么多,眼花完了

点评

简单的不出这毛病,我用 pecmd 给diskpart 做的外壳,也是这么大代码量的ini 也没出这毛病。  详情 回复 发表于 2019-7-10 22:28
回复

使用道具 举报

14265#
发表于 2019-7-10 22:17:49 | 只看该作者
datbik189 发表于 2019-7-10 22:08
没有问题脚本测试,说不清楚。

一般获取信息的命令为:


脚本已经上传
难道是我用 exec* @edit=!cmd /c diskpart
用的是 ! 而不是 * 导致的?

点评

exec* @edit=!cmd /c diskpart 变成 exec* &Vedit=*cmd /c diskpart, 再看看。现在不在电脑前,明天看看  详情 回复 发表于 2019-7-10 22:20
回复

使用道具 举报

14266#
发表于 2019-7-10 22:20:32 来自手机 | 只看该作者
dos时代菜鸟 发表于 2019-7-10 22:17
脚本已经上传
难道是我用 exec* @edit=!cmd /c diskpart
用的是 ! 而不是 * 导致的?


exec* @edit=!cmd /c diskpart 变成 exec* &edit=*cmd /c diskpart, 再看看。现在不在电脑前,明天看看

点评

好的,我也得明天才能在那个 特殊的问题环境 测试。  详情 回复 发表于 2019-7-10 22:26
回复

使用道具 举报

14267#
发表于 2019-7-10 22:26:41 | 只看该作者
datbik189 发表于 2019-7-10 22:20
exec* @edit=!cmd /c diskpart 变成 exec* &edit=*cmd /c diskpart, 再看看。现在不在电脑前,明天看 ...

好的,我也得明天才能在那个 特殊的问题环境 测试。
回复

使用道具 举报

14268#
发表于 2019-7-10 22:28:19 | 只看该作者
datbik189 发表于 2019-7-10 22:12
晕,有没有重现问题的最简短的脚本,那么多,眼花完了

简单的不出这毛病,我用 pecmd 给diskpart 做的外壳,也是这么大代码量的ini 也没出这毛病。

点评

应该是那个@的问题,我从没使用过这种方法  详情 回复 发表于 2019-7-10 22:40
回复

使用道具 举报

14269#
发表于 2019-7-10 22:40:48 来自手机 | 只看该作者
dos时代菜鸟 发表于 2019-7-10 22:28
简单的不出这毛病,我用 pecmd 给diskpart 做的外壳,也是这么大代码量的ini 也没出这毛病。

应该是那个@的问题,我从没使用过这种方法
回复

使用道具 举报

14270#
发表于 2019-7-10 23:04:08 | 只看该作者
PART命令中的-iv=如果能接负数,比如-1,像MSTR那样就更方便了
回复

使用道具 举报

14271#
发表于 2019-7-10 23:09:05 | 只看该作者
dos时代菜鸟 发表于 2019-7-10 21:56
好像跟 带& 变量的使用有关,只在我的环境 特定系统的特定 点上有问题。很是奇怪。
windows 10 环境下, ...

你代码里用到
exec* @edit
的地方太多了,到底哪里卡死了。你定位一个位置出来啊,这样让人慢慢找,耽误功夫哦。

点评

就单单 run_diskpart 段 有这个问题, 当dp_script 包含分区格式化指令的时候卡死。 换成 或者 就可以了。  详情 回复 发表于 2019-7-11 07:52
回复

使用道具 举报

14272#
发表于 2019-7-11 07:52:54 | 只看该作者
红毛樱木 发表于 2019-7-10 23:09
你代码里用到
exec* @edit
的地方太多了,到底哪里卡死了。你定位一个位置出来啊,这样让人慢慢找,耽 ...

就单单  run_diskpart 段 有这个问题,

  1.       exec* @edit_mess=*cmd.exe /c " type %dp_script% | diskpart.exe "
复制代码


当dp_script 包含分区格式化指令的时候卡死。

换成
  1.       exec* @edit_mess+=*cmd.exe /c " type %dp_script% | diskpart.exe "
复制代码

或者
  1.       exec  =*cmd.exe /c " type %dp_script% | diskpart.exe "
复制代码

就可以了。

点评

不知道怎么测试, 脚本运行没问题,帮不上忙. 建议脚本开头加上 ENVI^ ENVIMODE=1 这个才是PECMD2012的标准模式, 不加好像会有莫名的未知问题. 调试时在脚本开头加上 LOGS --2 *XX.LOG [attachimg]396851[  详情 回复 发表于 2019-7-11 08:25
回复

使用道具 举报

14273#
发表于 2019-7-11 08:25:21 | 只看该作者
dos时代菜鸟 发表于 2019-7-11 07:52
就单单  run_diskpart 段 有这个问题,


不知道怎么测试, 脚本运行没问题,帮不上忙.

建议脚本开头加上 ENVI^ ENVIMODE=1
这个才是PECMD2012的标准模式, 不加好像会有莫名的未知问题.

调试时在脚本开头加上 LOGS --2 *XX.LOG

点评

谢谢  详情 回复 发表于 2019-7-11 09:12
回复

使用道具 举报

14274#
发表于 2019-7-11 09:12:08 | 只看该作者
datbik189 发表于 2019-7-11 08:25
不知道怎么测试, 脚本运行没问题,帮不上忙.

建议脚本开头加上 ENVI^ ENVIMODE=1

谢谢

点评

exec* @edit_mess+=*cmd.exe /c " type %dp_script% | diskpart.exe " 这句不卡,就没问题喽  详情 回复 发表于 2019-7-11 09:39
回复

使用道具 举报

14275#
发表于 2019-7-11 09:39:11 | 只看该作者

exec* @edit_mess+=*cmd.exe /c " type %dp_script% | diskpart.exe "
这句不卡,就没问题喽
回复

使用道具 举报

14276#
发表于 2019-7-11 10:58:34 | 只看该作者
pecmd 有办法 向 某个进程传递指令么?
比如

  1. call @cmd_win
  2. _Sub cmd_win,h280 w400 ,cmd,kill *%cmdpid%
  3.       edit-| cmd_edit, L10 t10 h180 w380,,,0x220
  4.       item cmd_but,  L20 t200 h20 w50,cmd,exec* -io -pid:cmdpid @cmd_edit=*cmd.exe
  5. _end
复制代码


cmd_but 按钮以后,
窗口 编辑框 cmd_edit 接管了 cmd 的输入输出,如何 向 cmd 输入一条指令,显示到 cmd_edit 空间上?

点评

是不是可以通过窗口消息发送字符串信息给diskpart窗口,不知道这样行不行  详情 回复 发表于 2019-7-12 00:16
pecmd没有这么厉害吧。 是不是可以,ExEc* @V=*cmd.exe /c a.bat,a.bat内容是无限循环,满足一定条件就call b.bat,否则什么也不干. b.bat里面就是你要传递的指令,用Writ命令修改其内容。  详情 回复 发表于 2019-7-11 12:37
回复

使用道具 举报

14277#
发表于 2019-7-11 12:37:01 来自手机 | 只看该作者
dos时代菜鸟 发表于 2019-7-11 10:58
pecmd 有办法 向 某个进程传递指令么?
比如


pecmd没有这么厉害吧。

是不是可以,ExEc* @V=*cmd.exe /c a.bat,a.bat内容是无限循环,满足一定条件就call b.bat,否则什么也不干. b.bat里面就是你要传递的指令,用Writ命令修改其内容。

点评

vbs 有 输入输出 接管的。 我以为 pecmd 2012 也有呢,这个主要考虑是 用到 diskpart 上,因为 有的电脑 频繁调用 diskpart 会很烦,很慢。 所以我想的就是 隐藏调用一个 Diskpart ,就放在那里 挂着,需要用 disk  详情 回复 发表于 2019-7-11 14:55
回复

使用道具 举报

14278#
发表于 2019-7-11 14:55:38 | 只看该作者
datbik189 发表于 2019-7-11 12:37
pecmd没有这么厉害吧。

是不是可以,ExEc* @V=*cmd.exe /c a.bat,a.bat内容是无限循环,满足一定条件 ...

vbs 有 输入输出 接管的。
我以为 pecmd 2012 也有呢,这个主要考虑是 用到 diskpart 上,因为 有的电脑 频繁调用 diskpart 会很烦,很慢。
所以我想的就是 隐藏调用一个 Diskpart ,就放在那里 挂着,需要用 diskpart 的时候就 传给他一个 指令 ,然后 根据结果分析出想要的信息。这样,就只需要 调用一次 diskpart 。

点评

logs --2 * xx.log envi^ envimode=1 call @cmd_win _Sub cmd_win,h280 w400 ,cmd,kill *%cmdpid% edit-| cmd_edit, L10 t10 h180 w380,,,0x220 set &cmd=for /l %%i in (1,0,1) do @"%myname%" wa  详情 回复 发表于 2019-7-11 17:54
回复

使用道具 举报

14279#
发表于 2019-7-11 15:03:37 | 只看该作者
本帖最后由 datbik189 于 2019-7-11 17:55 编辑

重复了...
回复

使用道具 举报

14280#
发表于 2019-7-11 17:54:59 | 只看该作者
dos时代菜鸟 发表于 2019-7-11 14:55
vbs 有 输入输出 接管的。
我以为 pecmd 2012 也有呢,这个主要考虑是 用到 diskpart 上,因为 有的电脑 ...

logs --2 * xx.log
envi^ envimode=1
call @cmd_win
_Sub cmd_win,h280 w400 ,cmd,kill *%cmdpid%
      edit-| cmd_edit, L10 t10 h180 w380,,,0x220
      set &cmd=for /l %%i in (1,0,1) do @"%myname%" wait 500&call b.bat
      item cmd_but,  L20 t200 h20 w50,cmd,exec* -io -pid:cmdpid @cmd_edit=*cmd.exe /c %&cmd%
_end

b.bat内容可为:
(echo sel disk 0&echo list partition)|diskpart
::没有exit命令, diskpart就常驻内存,再次运行就飞快
或者 diskpart /s script.txt
@del %0>nul

点评

感觉这样不是真的 留有 一个diskpart 进程,diskpart 会随着call b.bat 而被多次调用。 可以探测下 diskpart 的进程号,是在变化的。 之所以再次运行 快了,是因为 diskpart 运行过一次,第二次就会快一些。  详情 回复 发表于 2019-7-11 23:51
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-12-24 13:23

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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