无忧启动论坛

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

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

    [复制链接]
61#
发表于 2019-7-18 22:48:48 来自手机 | 显示全部楼层
dos时代菜鸟 发表于 2019-7-18 22:31
diskpart 可以在 win7下驻留。

1.不用第二线程

好消息,改天我找个WIN7电脑测试下。

点评

code 和 sendmsg 用的摸不着头脑,也不知有没有更详细的解说  详情 回复 发表于 2019-7-18 23:40
回复

使用道具 举报

62#
发表于 2019-7-19 12:39:53 | 显示全部楼层
dos时代菜鸟 发表于 2019-7-18 23:40
code 和 sendmsg  用的摸不着头脑,也不知有没有更详细的解说

这个没有哦。

PECMD2012由M大一人开发,为兼容PECMD4.0,新版本兼容旧版本,新功能兼容旧功能,语法难免不规范,有些功能在说明中阐述不清。唯一权威的资料就是这个网页里面的附件和示范脚本。

5大和红毛大跟M大混的时间比较长,你问他们看看。
回复

使用道具 举报

63#
发表于 2019-7-19 17:00:47 | 显示全部楼层
本帖最后由 datbik189 于 2019-7-22 15:53 编辑

看到你们show脚本,我也发一下,

使用临时文件的:

ENVI^ ENVIMODE=1
TEAM SET$ &NL=D A|SET$ &TAB=9|MSTR &FILE=1,8,%RANDOM%|SET &FILE="%TEMP%\%&FILE%.TXT"|SET &END=DISKPART> %&NL%DISKPART> |STRL &END_LEN=%&END%
TEAM DATE &T1 UPTIME|EXEC -PID:&PID *CMD.EXE /K DISKPART.EXE>%&FILE%&DEL %&FILE%&EXIT
THREAD* -HERE -TID:&TID LOOP #1=1,TEAM FIND --WID*@. &V|SET &V1=%&TAB%%&PID%%&TAB%|LOAD #999*命令_FIND.EXE &V "" &V1|MSTR * &WID=<2>&V|CALC -BASE=16 &WID=%&WID%|SET-RET &WID=%&WID%|IFEX $%&WID%>0,EXIT LOOP
WAIT 1500 *=%&TID%
IFEX $%&WID%>0,ENVI @@SENDMSG=%&WID%;0X102;0XD!TEAM MESS.+ICON0 DISKPART.EXE 未启动!@出错|EXIT FILE
CALL @CMD_WIN

_SUB CMD_WIN,H410W600,DISKPART,CALL RUN EXIT
EDIT-| &CMD_EDIT1,L10T295H70W520,,,0X20
EDIT-| &CMD_EDIT,L10T10H280W580,,,0X864
ENVI @&CMD_EDIT.READONLY=1
LOOP #1=1,TEAM IFEX %&FILE%,!TEAM MESS.+ICON0 DISKPART.EXE 未启动!@出错||KILL \||EXIT FILE|READ %&FILE%,**,&RET|MSTR * &V=-1,%&END_LEN%,&RET|IFEX*C '%&END%'='%&V%',TEAM SED -EX &V=0,(%&NL%DISKPART> )+,%&NL%DISKPART> ,&RET||DATE &T2 UPTIME||CALC &T3=%&T2%-%&T1%||ENVI @&CMD_EDIT=%&V%   ( 启动耗时 %&T3% ms )%&NL%%&NL%DISKPART> ||EXIT LOOP
SET-RAW &CMD=TEAM SET &RET_NEW=|DATE &T4 UPTIME|FORX *NL &CMD_EDIT1,&COMMAND,FIND $%&COMMAND%=,!TEAM DATE &T1 UPTIME||CALL RUN &COMMAND||DATE &T2 UPTIME||CALC &T3=%&T2%-%&T1%||ENVI @&CMD_EDIT=%&CMD_EDIT%%&COMMAND%   ( 耗时 %&T3% ms )%&NL%%&RET_NEW%|FIND $%&RET_NEW%=,!TEAM CALC &T5=%&T2%-%&T4%||ENVI @&CMD_EDIT=%&CMD_EDIT%   ( 总耗时 %&T5% ms )%&NL%%&NL%DISKPART> |IFEX %&FILE%,!KILL \
ITEM &CMD_BUT,L530T329H20W50,RUN,TEAM ENVI @&CMD_BUT.ENABLE=0|%&CMD%|ENVI @&CMD_BUT.ENABLE=1
_END

_SUB RUN
FIND $%1=,EXIT _SUB
FIND $%1=EXIT,TEAM SET &CHAR=EXIT%&NL%|LOAD #999*命令_宽字符 &CHAR|FORX * %&CHAR%,&CHAR1,ENVI @@SENDMSG=%&WID%;0X102;0X%&CHAR1%|EXIT _SUB
TEAM READ %&FILE%,**,&RET|SET &RET_=%RET%|^SET &CHAR=%%%~1%%%&NL%%&NL%|IFEX*C '%&CHAR%'='%&NL%%&NL%',EXIT _SUB
TEAM LOAD #999*命令_宽字符 &CHAR|FORX * %&CHAR%,&CHAR1,ENVI @@SENDMSG=%&WID%;0X102;0X%&CHAR1%
LOOP #1=1,TEAM IFEX %&FILE%,!TEAM MESS.+ICON0 DISKPART.EXE 未启动!@出错||EXIT _SUB|READ %&FILE%,**,&RET|MSTR * &CHAR=-1,%&END_LEN%,&RET|IFEX*C ['%&END%'='%&CHAR%' & '%&RET%'<>'%&RET_%'],EXIT LOOP
TEAM READ -*,-1,&LINE,&RET_|CALC &LINE=%&LINE%+1|READ -*,%&LINE%+0,&RET_NEW,&RET|SED -EX &RET_NEW=0,(%&NL%DISKPART> )+,%&NL%DISKPART> ,&RET_NEW|SET-RET &RET_NEW=%&RET_NEW%
_END

不使用临时文件的:

ENVI^ ENVIMODE=1
TEAM SET$ &NL=D A|SET$ &TAB=9|SET &END=DISKPART> %&NL%DISKPART> |STRL &END_LEN=%&END%
TEAM DATE &T1 UPTIME|THREAD* -HERE CALL @START
THREAD* -HERE -TID:&TID LOOP #1=1,TEAM FIND --WID*@. &V|SET &V1=%&TAB%%&PID%%&TAB%|LOAD #999*命令_FIND.EXE &V "" &V1|MSTR * &WID=<2>&V|CALC -BASE=16 &WID=%&WID%|SET-RET &WID=%&WID%|IFEX $%&WID%>0,EXIT LOOP!WAIT 100
WAIT 1500 *=%&TID%
IFEX $%&WID%>0,ENVI @@SENDMSG=%&WID%;0X102;0XD!TEAM MESS.+ICON0 DISKPART.EXE 未启动!@出错|EXIT FILE
CALL @CMD_WIN

_SUB CMD_WIN,H410W600,DISKPART,CALL RUN EXIT
EDIT-| &CMD_EDIT1,L10T295H70W520,,,0X20
EDIT-| &CMD_EDIT,L10T10H280W580,,,0X864
ENVI @&CMD_EDIT.READONLY=1
LOOP #1=1,TEAM FIND $%PROCEED%=,!TEAM MESS.+ICON0 DISKPART.EXE 未启动!@出错||KILL \||EXIT LOOP|MSTR * &V=-1,%&END_LEN%,&RET|IFEX*C '%&END%'='%&V%',TEAM SED -EX &V=0,(%&NL%DISKPART> )+,%&NL%DISKPART> ,&RET||DATE &T2 UPTIME||CALC &T3=%&T2%-%&T1%||ENVI @&CMD_EDIT=%&V%   ( 启动耗时 %&T3% ms )%&NL%%&NL%DISKPART> ||EXIT LOOP
SET-RAW &CMD=TEAM SET &RET_NEW=|DATE &T4 UPTIME|FORX *NL &CMD_EDIT1,&COMMAND,FIND $%&COMMAND%=,!TEAM DATE &T1 UPTIME||CALL RUN &COMMAND||DATE &T2 UPTIME||CALC &T3=%&T2%-%&T1%||ENVI @&CMD_EDIT=%&CMD_EDIT%%&COMMAND%   ( 耗时 %&T3% ms )%&NL%%&RET_NEW%|FIND $%&RET_NEW%=,!TEAM CALC &T5=%&T2%-%&T4%||ENVI @&CMD_EDIT=%&CMD_EDIT%   ( 总耗时 %&T5% ms )%&NL%%&NL%DISKPART> |FIND $%PROCEED%=,!KILL \
ITEM &CMD_BUT,L530T329H20W50,RUN,TEAM ENVI @&CMD_BUT.ENABLE=0|%&CMD%|ENVI @&CMD_BUT.ENABLE=1
_END

_SUB START,#,CATCH,
TIME -T:1 &TIMER1,100,TEAM EXEC* -PID:&PID @&RET=*DISKPART.EXE|ENVI PROCEED=0|KILL \
TIME &TIMER2,50,@TEAM @SET-RET2 &PID=%&PID%|@SET-RET2 &RET=%&RET%
EDIT-| &RET,L10T10H180W380
_END

_SUB RUN
FIND $%1=,EXIT _SUB
FIND $%1=EXIT,TEAM SET &CHAR=EXIT%&NL%|LOAD #999*命令_宽字符 &CHAR|FORX * %&CHAR%,&CHAR1,ENVI @@SENDMSG=%&WID%;0X102;0X%&CHAR1%|EXIT _SUB
TEAM SET &RET_=%RET%|^SET &CHAR=%%%~1%%%&NL%%&NL%|IFEX*C '%&CHAR%'='%&NL%%&NL%',EXIT _SUB
TEAM LOAD #999*命令_宽字符 &CHAR|FORX * %&CHAR%,&CHAR1,ENVI @@SENDMSG=%&WID%;0X102;0X%&CHAR1%
LOOP #1=1,TEAM FIND $%PROCEED%=,!TEAM MESS.+ICON0 DISKPART.EXE 未启动!@出错||EXIT LOOP|MSTR * &CHAR=-1,%&END_LEN%,&RET|IFEX*C ['%&END%'='%&CHAR%' & '%&RET%'<>'%&RET_%'],EXIT LOOP
TEAM READ -*,-1,&LINE,&RET_|CALC &LINE=%&LINE%+1|READ -*,%&LINE%+0,&RET_NEW,&RET|SED -EX &RET_NEW=0,(%&NL%DISKPART> )+,%&NL%DISKPART> ,&RET_NEW|SET-RET &RET_NEW=%&RET_NEW%
_END

DISKPART.7z

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

回复

使用道具 举报

64#
发表于 2019-7-19 21:08:39 | 显示全部楼层
dos时代菜鸟 发表于 2019-7-18 23:40
code 和 sendmsg  用的摸不着头脑,也不知有没有更详细的解说

测试了WIN7系统,貌似只有你那个方法让diskpart一直后台挂着,再使用临时文件获取回显。EXE* 用不了。

点评

因为如果用 exec* 直接把结果传递给 控件 的 ,就要用 = ,强制等待,而这个在 win7 下 失灵。  详情 回复 发表于 2019-7-19 22:14
回复

使用道具 举报

65#
发表于 2019-7-21 11:59:52 | 显示全部楼层
本帖最后由 datbik189 于 2019-7-21 16:33 编辑
Anson4 发表于 2019-7-21 10:05
我现在用的是本楼(14362#)附件这个脚本,今天又遇到了新的问题,比如将下图左边的字符串替换成右边的字 ...



把左边字符串替换成右边的对吧.

如果不想弄清楚PECMD的具体用法和继续使用CMD,用附件.

运行结果生成New.txt, 内容如下:
%ProgramFiles(x86)%\Adobe\Acrobat DC\Acrobat\adobeafp.dll                        %ProgramFiles(x86)%\Adobe\Acrobat DC\Acrobat\adobeafp.dll
%CommonProgramFiles(x86)%\Adobe\OOBE\PDApp\core\NPSWF32.dll        %CommonProgramFiles(x86)%\Adobe\OOBE\PDApp\core\NPSWF32.dll

CF32_        CF32_
PF32_                                PF32_

PECMD_Script_Test.7z

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

点评

你这脚本为啥要加密呢,拿出来学习学习嘛  详情 回复 发表于 2019-7-21 18:47
回复

使用道具 举报

66#
发表于 2019-7-21 12:01:13 | 显示全部楼层
527104427 发表于 2019-7-21 11:24
你这要求越来越蛋疼了,CMD这么低级的东西,想实现真的很难。
干脆你直接说想干什么,全套发上来,我给 ...


5大, 我猜他是想用一个脚本替代   fr.exe --- cmd下用的字符替换工具

点评

你说得对! FR和WFR处理的时候对UNICODE编码总是效果不理想。  详情 回复 发表于 2019-7-21 18:25
我看,倒是像搞绿化的  详情 回复 发表于 2019-7-21 12:08
回复

使用道具 举报

67#
发表于 2019-7-21 18:47:54 | 显示全部楼层
Anson4 发表于 2019-7-21 18:25
你说得对!
FR和WFR处理的时候对UNICODE编码总是效果不理想。

那就下载14368楼的附件,应该能满足你的要求。
回复

使用道具 举报

68#
发表于 2019-7-21 18:54:59 来自手机 | 显示全部楼层
本帖最后由 datbik189 于 2019-7-21 18:59 编辑


自己写的命令块,粗浅得很,都不知有没有潜在问题,以后再说了。

http://bbs.wuyou.net/forum.php?m ... &highlight=2012
回复

使用道具 举报

69#
发表于 2019-7-21 19:05:35 | 显示全部楼层
Anson4 发表于 2019-7-21 19:01
谢谢!
不过自己搞不懂的代码,恐怕会带来更多的疑问。

只是给V1和V2赋值而已,简单得很。

想弄清楚就练练PECMD脚本吧,SED命令。
回复

使用道具 举报

70#
发表于 2019-7-21 23:52:16 来自手机 | 显示全部楼层
Anson4 发表于 2019-7-21 22:59
谢谢!
PECMD的帮助信息看起来比较吃力,一时半会上不了手,所以我还得选择稍微懂一点的CMD脚本。
好在 ...


好的,大家都是非科班出身的业余爱好者,做一些力所能及的事就好。

我一开始也是99%的CMD+1%的PECMD脚本,只用MESS,Wait,Kill,EXEC简单语句做一些CMD不能做的事,后来要打包批处理成单文件,写一些CMD脚本程序,又觉得运行太慢,才开始按触PECMD脚本。现在基本是1%的CMD+99%的PECMD脚本,用多了其实也不难,熟能生巧,CMD很少用了,太慢,功能一般,又要找一堆第三方工具实现其它功能。
回复

使用道具 举报

71#
发表于 2019-7-22 11:00:45 | 显示全部楼层
本帖最后由 datbik189 于 2019-7-22 15:16 编辑



无聊,弄了一下 DISKPART 测试脚本.

事实证明DISKPART挂在后台, 运行很快.(启动耗时 462 ms ,4个命令耗时 62 ms)


Microsoft DiskPart 版本 10.0.14393.0

Copyright (C) 1999-2013 Microsoft Corporation.
在计算机上: NDF-20180809NVL

DISKPART>    ( 启动耗时 462 ms )

DISKPART> sel disk 0   ( 耗时 12 ms )
磁盘 0 现在是所选磁盘。

DISKPART> list partition   ( 耗时 7 ms )
  分区 ###       类型              大小     偏移量
  -------------  ----------------  -------  -------
  分区      1    主要                 100 GB  1024 KB
  分区      0    扩展的                831 GB   100 GB
  分区      2    逻辑                 278 GB   100 GB
  分区      3    逻辑                 277 GB   378 GB
  分区      4    逻辑                 276 GB   655 GB

DISKPART> list volume   ( 耗时 20 ms )
  卷 ###      LTR  标签         FS     类型        大小     状态       信息
  ----------  ---  -----------  -----  ----------  -------  ---------  --------
  卷     0     C   系统           NTFS   磁盘分区         100 GB  正常         系统      
  卷     1     D   软件           NTFS   磁盘分区         278 GB  正常                 
  卷     2     E   文档           NTFS   磁盘分区         277 GB  正常                 
  卷     3     F   娱乐           NTFS   磁盘分区         276 GB  正常                 

DISKPART> list disk   ( 耗时 20 ms )
  磁盘 ###  状态           大小     可用     Dyn  Gpt
  --------  -------------  -------  -------  ---  ---
* 磁盘 0    联机              931 GB      0 B         

DISKPART>    ( 总耗时 62 ms )

DISKPART>

DISKPART.7z

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

回复

使用道具 举报

72#
发表于 2019-7-23 17:53:41 | 显示全部楼层
本帖最后由 datbik189 于 2019-8-28 19:19 编辑
dos时代菜鸟 发表于 2019-7-23 14:33
我已经用这个方法 改进到了 我的那个 diskpart_shell 中了。



好的,期待您的大作.

附件只不过是显示了各命令的运行时间, 方便测试,仅供参考.

DISKPART.7z

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

回复

使用道具 举报

73#
发表于 2019-7-23 22:53:32 | 显示全部楼层
改天有空试下大神的作品,对diskpart命令不是很熟
回复

使用道具 举报

74#
发表于 2019-9-24 11:04:03 | 显示全部楼层
红毛樱木 发表于 2019-9-22 22:24
遇到一个REGI的问题,不知如何处理,请教。
手动创建一个注册表值:
HKLM\SOFTWARE\test\test


测试了一下,貌似这是个BUG.

regi ~ 命令中数值中\0及后面部分会被舍弃,没有发现转义和别的办法
regi **命令中数值中,如果包含\0,可以用\\0转义替代

变通的办法是使用CMD命令替代:

reg add 或 reg import/export.

点评

暂时也只有这样了,写了个函数转成Reg  详情 回复 发表于 2019-9-24 11:16
回复

使用道具 举报

75#
发表于 2019-9-26 10:37:08 | 显示全部楼层
红毛樱木 发表于 2019-9-24 11:16
暂时也只有这样了,写了个函数转成Reg


问题解决了,数值使用16进制表达.

envi^ envimode=1
set-raw &V=%systemroot%\test\001
getf -bin &V,0#*,&V
regi --t:2 --16 hklm\software\test\test=%&V%
exec regedit

点评

regi --t:2 --16 hklm\software\test\test=%&V% 可以 regi --t:2 hklm\software\test\test=%&V% 说明书上写的--16要配合@#数据为16进制  详情 回复 发表于 2019-9-26 13:35
这个6,还用了getf,那个--t的也总算知道怎么用的了。  详情 回复 发表于 2019-9-26 12:04
回复

使用道具 举报

76#
发表于 2019-9-26 14:54:24 | 显示全部楼层
红毛樱木 发表于 2019-9-26 13:35
regi --t:2 --16 hklm\software\test\test=%&V%
可以
regi --t:2 hklm\software\test\test=%&V%


底下的代码,不能正确赋值,其值为空

envi^ envimode=1
set-raw &V=%systemroot%\test\001
regi --t:2 hklm\software\test\test=%&V%
exec regedit

点评

envi^ envimode=1 set-raw &V=%systemroot%\test\001 getf -bin &V,0#*,&V regi --t:2 hklm\software\test\test=%&V% 你漏掉了转16进制。 你用的GETF,我自己用CODE习惯一些。  详情 回复 发表于 2019-9-26 17:54
回复

使用道具 举报

77#
发表于 2019-9-26 18:35:14 | 显示全部楼层
红毛樱木 发表于 2019-9-26 17:54
envi^ envimode=1
set-raw &V=%systemroot%\test\001
getf -bin &V,0#*,&V

哦,我原先以为你的意思是不用转16进制,直接可以赋值。

顺便请教下,如何建立空键值,只会删除。比如hklm\software\test\test其值如何设定成空(一个0x00都没有,长度为0)

点评

真没注意过,你要的是什么类型的?  详情 回复 发表于 2019-9-26 18:41
回复

使用道具 举报

78#
发表于 2019-9-26 18:46:26 | 显示全部楼层
红毛樱木 发表于 2019-9-26 18:41
真没注意过,你要的是什么类型的?

全部类型的写法。

好像有点钻牛角尖,需要废时间研究就算了。用命令regi --t:2 hklm\software\test\test=,只能删除键

点评

这么变态?晚点试试,在吃饭  详情 回复 发表于 2019-9-26 18:48
回复

使用道具 举报

79#
发表于 2019-9-26 19:41:44 | 显示全部楼层
红毛樱木 发表于 2019-9-26 18:54
regi .hklm\software\test\test=

试下呢?

结果是删除键。

regi hklm\software\test\test=@,可以得到长度为0的reg_binary空值。

空键值貌似也没什么用,不玩了。
回复

使用道具 举报

80#
发表于 2019-9-26 20:05:57 | 显示全部楼层
红毛樱木 发表于 2019-9-26 18:54
regi .hklm\software\test\test=

试下呢?

建立空键值的命令是:
regi --t:2 hklm\software\test\test=""

点评

特殊需求  详情 回复 发表于 2019-9-26 20:20
回复

使用道具 举报

81#
发表于 2019-10-16 16:54:18 | 显示全部楼层
红毛樱木 发表于 2019-10-16 16:10
等读完文件, 在处理, 有个等待时间。

-------------------------------------------


以前测试过diskpart的脚本,
效率最高的读文件办法是: TEAM GETF# 123.txt,1024*1024,&V|Code **-ANSI,&V,**-UNI,&V
尽量避免处理大体积的PE变量,感觉很慢.

点评

不太清楚内部机制。 不过我是一次性读完到变量,后面再GETF -find成千上万次,按照逻辑上我想应该会更快才对。  详情 回复 发表于 2019-10-16 17:23
回复

使用道具 举报

82#
发表于 2019-10-24 09:42:46 | 显示全部楼层
本帖最后由 datbik189 于 2019-10-24 15:39 编辑
mdyblog 发表于 2019-10-24 06:33
对。
是不是 多进程、多线程?


M大出山了,可喜可贺.

请教几个问题:

1. moun-udm listudm -ret:&V \\.\physicaldrive0
    如何使用SED命令替换除盘符(C:,D:)外的字符为空格,能否用一句SED命令实现?(需要写很多脚本我自己琢磨吧)
    如何使用SED命令查找不含C:的行号? SED -EX ;;*&V=?0,正则表达式,,&V

2. 以下是不是set-copy的bug?

   envi^ envimode=1
   call 123

    _sub 123
   set &V=123
   set-copy &V=&a
   mess. %&V% //以为&V的变量返回空值,结果返回123
   _end

3. 类似set-ret5的回溯级别好像没有级别限制, 数字大了脚本就运行不下去了.
   想法是不让某个PE变量退出块时自动销毁或者返回其值到程序级别的PE变量(全局PE变量).
   
  envi^ envimode=1
  call 123
  mess. %&V% //运行不了

  _sub 123
  set-ret100 &V=123
  _end

4. 有时需要传递字节数为单数的PE变量,使用set &V=%&a%后, &V的变量字节数就变成了双数.
   怎么样传递变量不改变字节数?

   set$# &a=01 02  03     //字节数为3,单数
   set-copy &V=&a          //字节数为3,单数
   set &V=%&a%           //&V的16进制数值为 01 02 03 00,字节数变成了4

点评

3. 类似set-ret5的回溯级别好像没有级别限制, 数字大了脚本就运行不下去了. 想法是不让某个PE变量退出块时自动销毁或者返回其值到程序级别的PE变量(全局PE变量). envi^ envimode=1 call 123 mess.  详情 回复 发表于 2019-10-24 10:28
2. 以下是不是set-copy的bug? envi^ envimode=1 call 123 _sub 123 set &V=123 set-copy &V=&a mess. %&V% //以为&V的变量返回空值,结果返回123 _end --------------------------  详情 回复 发表于 2019-10-24 10:26
回复

使用道具 举报

83#
发表于 2019-10-24 10:49:13 | 显示全部楼层
红毛樱木 发表于 2019-10-24 10:26
2. 以下是不是set-copy的bug?

   envi^ envimode=1

谢谢.

不过个人觉得应该是返回空值比较合理一些,不然觉得麻烦:得先确定&a存不存在,才能用set-copy.

用set &V=%&a%方便,但是当&a的字节数为单数时, &V的字节数就会变成双数(尾部多了个 0x00)

点评

PECMD内部就是UNICODE的双字节程序方案处理的。  发表于 2019-10-24 11:10
envi^ envimode=1 call 123 _sub 123 set &V=123 set-copy &V=&a mess. %&V% //以为&V的变量返回空值,结果返回123 _end 这样应该能看得清一些吧  详情 回复 发表于 2019-10-24 11:09
回复

使用道具 举报

84#
发表于 2019-10-24 10:52:54 | 显示全部楼层
红毛樱木 发表于 2019-10-24 10:28
3. 类似set-ret5的回溯级别好像没有级别限制, 数字大了脚本就运行不下去了.
   想法是不让某个PE变量退 ...

是的,100级只不过是夸张的演示.

当级别数错时,就玩了,脚本运行不下去了. 用你的全局PE变量办法不错.
回复

使用道具 举报

85#
发表于 2019-10-24 11:33:19 | 显示全部楼层
红毛樱木 发表于 2019-10-24 11:21
ENVI &a=1
THREAD* -WAIT TEAM ENVI &&a=2| ENVI-ret &a=%&&a%| ENVI-ret &b=%&&a%
MESS.

ENVI &a=1
THREAD* -WAIT -HERE TEAM ENVI &&a=2| ENVI-ret &a=%&&a%| ENVI-ret &b=%&&a%
MESS. <%&a%><%&b%> //返回<2><2>

点评

感谢  详情 回复 发表于 2019-10-24 11:45
回复

使用道具 举报

86#
发表于 2019-11-26 15:31:58 | 显示全部楼层
打开标准模式的开关: ENVI^ ENVIMODE=1
变量的表达方式跟.BAT和.CMD脚本一样,%L%可用%%L%%表达.
说明书里面有这方面的说明.

点评

默认为什么不开启呢? 而且感觉没有专门的转义迟早会翻车。  详情 回复 发表于 2019-11-26 15:43
回复

使用道具 举报

87#
发表于 2019-11-26 15:47:25 | 显示全部楼层
求道者 发表于 2019-11-26 15:43
默认为什么不开启呢?
而且感觉没有专门的转义迟早会翻车。


默认是兼容PECMD4.0.

这里是PECMD2012, 一般都用标准模式, 即在每个脚本的第一行加上ENVI^ ENVIMODE=1.

点评

果不其然 我就觉得不对…… 不只是变量的%%还有分隔符,也需要转义 所以全局通用的转义符有吗? 脚本语言一定要有的,不然翻车只是迟早的事 至少我了解的脚本语言都有转义符…… 然后脚本如果用UTF-8编码 中  详情 回复 发表于 2019-11-26 23:55
回复

使用道具 举报

88#
发表于 2022-12-18 10:09:35 | 显示全部楼层
moun-udm listud -ret:&v \\.\physicaldrive0 貌似PECMD会崩溃。
回复

使用道具 举报

89#
发表于 2023-3-3 19:28:03 来自手机 | 显示全部楼层
hhh333 发表于 2023-3-1 11:53
查到了,是有。只能指定路径,文件名固定为wimgapi.dll还是直接指定路径和文件名?不会用

查资料显示: MOUN *dll %SystemRoot%\System32\A.dll *query &a  或者 MOUN -dll %SystemRoot%\System32\A.dll -query &a

点评

试了,可心指定DLL挂载,但似乎会有冲突,不好用  详情 回复 发表于 2023-3-3 22:01
回复

使用道具 举报

90#
发表于 2023-3-10 15:46:07 | 显示全部楼层
Anson4 发表于 2023-3-10 15:26
PBAR PBAR1,L12T493W375H26,0,

对于上面的进度条,用 ENVI @PBAR1.visible=0 或者 ENVI @PBAR1.visible= ...

thread* team envi @PBAR1.visible=?&v|mess. %&v% //1为可见,0为隐藏

点评

很有效,感谢指导!  详情 回复 发表于 2023-3-10 16:01
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-6-15 06:08

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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