无忧启动论坛

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

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

    [复制链接]
14221#
发表于 2019-2-15 21:49:15 | 只看该作者
本帖最后由 527104427 于 2019-2-15 21:50 编辑
datbik189 发表于 2019-2-15 11:18
SED命令涉及到正则,有些符号有特殊意义.
目前通过这样的方式解决这个问题,只是比较繁琐.


这么复杂?不就是一句命令的事吗:
SET &V1=*
SET &V2=★
SET. &V3=*\n*\n*
SED &V3=1:1,%&V1%,%&V2%,%&V3%
MESS. %&V3%

111.png (74.02 KB, 下载次数: 307)

111.png

点评

当&V1,&Ⅴ2为包括任意的未知的字符串时,如包括+.?等特殊字符时,就不知道怎么弄,头大了,就瞎写一段代码。  详情 回复 发表于 2019-2-15 22:00
回复

使用道具 举报

14222#
发表于 2019-2-15 22:00:03 来自手机 | 只看该作者
527104427 发表于 2019-2-15 21:49
这么复杂?不就是一句命令的事吗:
SET &V1=*
SET &V2=★

当&V1,&Ⅴ2为包括任意的未知的字符串时,如包括+.?等特殊字符时,就不知道怎么弄,头大了,就瞎写一段代码。

点评

还是一样可以啊,把你觉得不可以的代码贴上来。  详情 回复 发表于 2019-2-16 01:43
回复

使用道具 举报

14223#
发表于 2019-2-16 01:43:37 | 只看该作者
datbik189 发表于 2019-2-15 22:00
当&V1,&Ⅴ2为包括任意的未知的字符串时,如包括+.?等特殊字符时,就不知道怎么弄,头大了,就瞎写一段 ...

还是一样可以啊,把你觉得不可以的代码贴上来。

333.png (77.52 KB, 下载次数: 316)

333.png

222.png (77.73 KB, 下载次数: 307)

222.png

点评

SET &V1=C:\WINDOWS\TEST.EXE(1) SET &V2=X:\TEST.EXE(2) SET &V3=C:\WINDOWS\TEST.EXE(1)\MYNAME //替换结果为X:\TEST.EXE(2)\MYNAME //&V1,&V2值只是随机出现的一种情况  详情 回复 发表于 2019-2-16 08:04
回复

使用道具 举报

14224#
发表于 2019-2-16 08:04:42 来自手机 | 只看该作者
本帖最后由 datbik189 于 2019-2-16 09:03 编辑
527104427 发表于 2019-2-16 01:43
还是一样可以啊,把你觉得不可以的代码贴上来。


SET &V1=C:\WINDOWS\TEST.EXE(1)
SET &V2=X:\TEST.EXE(2)
SET &V3=C:\WINDOWS\TEST.EXE(1)\MYNAME
SED &V3=0:0,%&V1%,%&V2%,%&V3%
MESS. %&V3%
//结果不正常,
期望的替换结果为X:\TEST.EXE(2)\MYNAME
//&V1,&V2值只是随机出现的一种情况

或者:
SET &V1=.
SET &V2=★
SET. &V3=.\n.\n.
SED &V3=1:1,%&V1%,%&V2%,%&V3%  //&V1中的.应该是代表全部字符吧
MESS. %&V3%

sed命令中貌似没有开关关闭正则,使变量&V1中的.就是.,\就是\,各个字符都是字面上的样子,不转义。

点评

&V1的特殊字符前必需加\ &V2的特殊字符前是不能加\的,但\除外  详情 回复 发表于 2019-2-16 10:03
SET &V1=C:\\WINDOWS\\TEST.EXE\(1\) SET &V2=X:\\TEST.EXE(2) SET &V3=C:\WINDOWS\TEST.EXE(1)\MYNAME SED &V3=0:0,%&V1%,%&V2%,%&V3% MESS. %&V3%  详情 回复 发表于 2019-2-16 10:01
特殊字符前加个反斜杠,就是不转义的意思: SET &V1=\. SET &V2=★ SET. &V3=.\n.\n. SED &V4=1:1,%&V1%,%&V2%,%&V3% MESS [%&V3%]\n\n[%&V4%]  详情 回复 发表于 2019-2-16 09:56
回复

使用道具 举报

14225#
发表于 2019-2-16 09:56:30 | 只看该作者
datbik189 发表于 2019-2-16 08:04
SET &V1=C:\WINDOWS\TEST.EXE(1)
SET &V2=X:\TEST.EXE(2)
SET &V3=C:\WINDOWS\TEST.EXE(1)\MYNAME

特殊字符前加个反斜杠,就是不转义的意思:
SET &V1=\.
SET &V2=★
SET. &V3=.\n.\n.
SED &V4=1:1,%&V1%,%&V2%,%&V3%
MESS [%&V3%]\n\n[%&V4%]
回复

使用道具 举报

14226#
发表于 2019-2-16 10:01:14 | 只看该作者
datbik189 发表于 2019-2-16 08:04
SET &V1=C:\WINDOWS\TEST.EXE(1)
SET &V2=X:\TEST.EXE(2)
SET &V3=C:\WINDOWS\TEST.EXE(1)\MYNAME


SET &V1=C:\\WINDOWS\\TEST.EXE\(1\)
SET &V2=X:\\TEST.EXE(2)
SET &V3=C:\WINDOWS\TEST.EXE(1)\MYNAME
SED &V3=0:0,%&V1%,%&V2%,%&V3%
MESS. %&V3%
回复

使用道具 举报

14227#
发表于 2019-2-16 10:03:59 | 只看该作者
datbik189 发表于 2019-2-16 08:04
SET &V1=C:\WINDOWS\TEST.EXE(1)
SET &V2=X:\TEST.EXE(2)
SET &V3=C:\WINDOWS\TEST.EXE(1)\MYNAME

&V1的特殊字符前必需加\
&V2的特殊字符前是不能加\的,但\除外

点评

谢谢5大,学了不少知识。我写的那个脚本也基本满足我的要求了,不纠结这个了。  详情 回复 发表于 2019-2-16 12:41
回复

使用道具 举报

14228#
发表于 2019-2-16 12:41:39 来自手机 | 只看该作者
527104427 发表于 2019-2-16 10:03
&V1的特殊字符前必需加\
&V2的特殊字符前是不能加\的,但\除外

谢谢5大,学了不少知识。我写的那个脚本也基本满足我的要求了,不纠结这个了。
回复

使用道具 举报

14229#
发表于 2019-2-26 16:30:51 | 只看该作者
本帖最后由 红毛樱木 于 2019-2-26 16:44 编辑

发现很奇葩的问题,好多用户win10系统下这样子。
开一个进程去操作文件:
EXEC =%&MyName% LOAD C:\A.INI
大量使用
FILE -progress
代码复制文件,显示复制进度条,子进程就莫名其妙的随机退出
但是直接使用
FILE
代码复制文件,不显示进度条,完全正常。
这问题我这里没法重现,即使我装别人一样的系统也重现不了。太奇葩。

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

使用
EXEC -incmd PECMD LOAD C:\A.INI
也不行

-----------------------------------------------------------------------------------------------------------
但是使用
THREAD -WAIT LOAD C:\A.INI
又可以
但是这样用的话又会造成主程序的UI假死
-----------------------
回复

使用道具 举报

14230#
发表于 2019-2-27 16:18:04 | 只看该作者
mdyblog 发表于 2018-8-6 23:50
WAIGO_Win10_8.1_XP_ALL_PE-G4D改04Full.ISO.part*.rar (44个) 上传中。 https://www.lanzous.com/b331 ...

envi^ envimode=1
read %curfile%,**,&V
sed &V=0,.*,\u,%&V%
mess. %&V%
----------------------------
文件大小貌似大于1KB,程序崩溃

Test.txt

1.25 KB, 下载次数: 3

点评

好像是SED那里挂了  详情 回复 发表于 2019-2-28 13:16
回复

使用道具 举报

14231#
发表于 2019-2-28 13:16:34 | 只看该作者
本帖最后由 红毛樱木 于 2019-2-28 13:27 编辑
datbik189 发表于 2019-2-27 16:18
envi^ envimode=1
read %curfile%,**,&V
sed &V=0,.*,%u,%&V%


好像是SED那里挂了

这句的问题
sed &V=0,.*,\u,%&V%
--------------------------------------------
测试把\u前面的\去掉就可以了
sed &V=0,.*,u,%&V%
不是很熟悉SED的用法
----------------------------------------------
sed &V=0,.*,\\u,%&V%
这样子是不是你要的效果?

点评

谢谢红大,sed &V=0,.*,%u,%&V%的意思就是把变量&Ⅴ的内容变成大写,\%u不是我要的结果  详情 回复 发表于 2019-2-28 17:57
回复

使用道具 举报

14232#
发表于 2019-2-28 17:57:54 来自手机 | 只看该作者
本帖最后由 datbik189 于 2019-2-28 18:12 编辑
红毛樱木 发表于 2019-2-28 13:16
好像是SED那里挂了

这句的问题


谢谢红大,sed &V=0,.*,\u,%&V%的意思就是把变量&Ⅴ的内容变成大写,\\u不是我要的结果,变量&V的内容不大于1KB就不会出错。

点评

%u在前面  详情 回复 发表于 2019-3-1 20:21
回复

使用道具 举报

14233#
发表于 2019-2-28 18:22:00 | 只看该作者
本帖最后由 datbik189 于 2019-2-28 18:33 编辑
mdyblog 发表于 2018-8-6 23:50
WAIGO_Win10_8.1_XP_ALL_PE-G4D改04Full.ISO.part*.rar (44个) 上传中。 https://www.lanzous.com/b331 ...


不知道这是不是bug?

set &v1==
set &v2==
find $%&v1%=%&v2%,!mess 你看不见我

点评

这种情况你应该这样用了  详情 回复 发表于 2019-3-1 21:58
回复

使用道具 举报

14234#
发表于 2019-3-1 20:21:10 来自手机 | 只看该作者
本帖最后由 红毛樱木 于 2019-3-1 21:57 编辑
datbik189 发表于 2019-2-28 17:57
谢谢红大,sed &V=0,.*,%u,%&V%的意思就是把变量&Ⅴ的内容变成大写,\%u不是我要的结果,变量&V的内容 ...


确实是的,%&V%变量的内容大小有限制,超过了就崩溃,看来是个BUG。

点评

谢谢红大,自己写了个小脚本解决了,26个字母依次替换: sed -eⅹ &V=0,a,A,&V  详情 回复 发表于 2019-3-1 23:01
回复

使用道具 举报

14235#
发表于 2019-3-1 21:58:54 | 只看该作者
datbik189 发表于 2019-2-28 18:22
不知道这是不是bug?

set &v1==

这种情况你应该这样用了

  1. set &v1==
  2. set &v2==
  3. IFEX '%&v1%'='%&v2%',! mess 你看不见我
复制代码

点评

又学了一种方法,谢谢  详情 回复 发表于 2019-3-1 23:02
回复

使用道具 举报

14236#
发表于 2019-3-1 23:01:43 来自手机 | 只看该作者
红毛樱木 发表于 2019-3-1 20:21
确实是的,%&V%变量的内容大小有限制,超过了就崩溃,看来是个BUG。

谢谢红大,自己写了个小脚本解决了,26个字母依次替换: sed -eⅹ &V=0,a,A,&V
回复

使用道具 举报

14237#
发表于 2019-3-1 23:02:43 来自手机 | 只看该作者
红毛樱木 发表于 2019-3-1 21:58
这种情况你应该这样用了

又学了一种方法,谢谢
回复

使用道具 举报

14238#
发表于 2019-3-4 10:26:02 | 只看该作者
你的测试版提权的那个,有BUG,如果写成启动自动运行一次(前期是会判断某个键值是否存在,如果存在就自动运行删除,重启电脑。不存在就自动退出),会导致系统多次重启,而且PECMD的服务会创建很多个
回复

使用道具 举报

14239#
发表于 2019-3-5 21:19:38 | 只看该作者
本帖最后由 红毛樱木 于 2019-3-5 21:54 编辑

搞过了  啊哈哈    无效无效
回复

使用道具 举报

14240#
发表于 2019-3-12 10:26:26 | 只看该作者
mdyblog 发表于 2018-8-6 23:50
WAIGO_Win10_8.1_XP_ALL_PE-G4D改04Full.ISO.part*.rar (44个) 上传中。 https://www.lanzous.com/b331 ...

MESS+icon**shell32.dll#120 你好   //图标失效,出不来了
回复

使用道具 举报

14241#
发表于 2019-3-13 13:42:25 | 只看该作者
datbik189 发表于 2019-3-12 10:26
MESS+icon**shell32.dll#120 你好   //图标失效,出不来了

我试了好几个版本,貌似都不行。。。。以前有可以这样用的版本吗?
回复

使用道具 举报

14242#
发表于 2019-3-13 19:08:37 来自手机 | 只看该作者
红毛樱木 发表于 2019-3-13 13:42
我试了好几个版本,貌似都不行。。。。以前有可以这样用的版本吗?

我用了16年的版本,也不行,估计很早就取消了吧,但是帮助文件那还有这种用法。
回复

使用道具 举报

14243#
发表于 2019-3-18 13:18:47 | 只看该作者
本帖最后由 红毛樱木 于 2019-3-18 13:25 编辑
  1. ENVI &a=2
  2. ENVI &::a=1
  3. MESS. %&a%<%&::a%>
复制代码


这里
&::a和&a看上去是两个单独的变量了,无任何关系了。是不是和说明书里的全局变量有点矛盾了。


假如:
  1. ENVI &a=1
  2. CALL B
  3. _SUB B
  4. IFEX $%&a%=1,ENVI &::a=2
  5. _END
  6. MESS. %&a%
复制代码

假如上面的B函数是第N层了,具体不记得多少层了,这时候想把&a的变量值改成2,想到了&::的全局变量用法,但是调用的时候只能用%&::a%而不是直接用%&a%。
不知道老大有没有明白我的意思 - -



下面这个又是一个样子
  1. ENVI &::a=1
  2. ENVI &a=2
  3. MESS. %&a%<%&::a%>
复制代码




再看
  1. ENVI &::a=1
  2. CALL B
  3. _SUB B
  4. MESS. %&a%<%&::a%>
  5. IFEX $%&a%=1,ENVI &::a=2
  6. _END
  7. MESS. %&a%
复制代码

回复

使用道具 举报

14244#
发表于 2019-3-21 17:21:28 | 只看该作者
红毛樱木 发表于 2019-3-18 13:18
这里
&::a和&a看上去是两个单独的变量了,无任何关系了。是不是和说明书里的全局变量有点矛盾了。


供参考,说明书上说:

[&&V] --- 本级PE变量 --- 引用办法: [%&&V%]
[&V]   --- 上级PE变量 --- 引用办法: [%&V%]    ---当本级PE变量存在,其实际值被屏蔽,实际为本级PE变量的值.
[&::V] --- 全局PE变量 --- 引用办法: [%&::V%]

SET &::V=全局PE
SET &V=上级PE
CALL TEST

_SUB TEST
//SET &V=本级PE
MESS  &&V 的值为 [%&&V%]\n\n  &V 的值为 [%&V%]\n\n&::V 的值为 [%&::V%]
_END
回复

使用道具 举报

14245#
发表于 2019-3-22 12:38:02 | 只看该作者
datbik189 发表于 2019-3-21 17:21
供参考,说明书上说:

[&&V] --- 本级PE变量 --- 引用办法: [%&&V%]

你试试这个

ENVI &::V=全局PE
ENVI &V=上级PE
CALL TEST

_SUB TEST
ENVI &&V=本级PE
MESS  &&V 的值为 [%&&V%]\n\n  &V 的值为 [%&V%]\n\n&::V 的值为 [%&::V%]
_END
回复

使用道具 举报

14246#
发表于 2019-3-22 14:56:26 | 只看该作者
本帖最后由 datbik189 于 2019-3-22 15:24 编辑
红毛樱木 发表于 2019-3-22 12:38
你试试这个

ENVI &::V=全局PE



从测试代码看来全局PE变量就是文件0级PE变量(没有则创建),"ENVI &V=上级PE变量"可以改变上级PE变量的值(上级PE变量不存在则退出)
%&V%的值有三种可能,优先级为%&&V%(本级PE变量存在时)>%&V%(上级PE变量存在时)>%&::V%.




ENVI &::V=全局PE     //全局PE变量
ENVI &V=文件0级PE    //文件0级PE变量
ENVI &&V=文件1级PE   //文件1级PE变量
CALL TEST
MESS  &&V 的值为 [%&&V%]\n\n  &V 的值为 [%&V%]\n\n&::V 的值为 [%&::V%]@MESS在文件1级

_SUB TEST
ENVI &&V=文件2级PE //文件2级PE变量
MESS  &&V 的值为 [%&&V%]\n\n  &V 的值为 [%&V%]\n\n&::V 的值为 [%&::V%]@MESS在文件2级
_END
回复

使用道具 举报

14247#
发表于 2019-3-22 16:05:54 | 只看该作者
本帖最后由 datbik189 于 2019-3-22 17:20 编辑
红毛樱木 发表于 2019-3-22 12:38
你试试这个

ENVI &::V=全局PE


测试了不少代码,得出了以下结论,不知对不对.

原理只有程序作者M大最清楚了.

ENVI &&V=设置本级PE变量   //等价于SET &V=设置本级PE变量
ENVI &V=设置上级PE变量    //等价于SET V=设置上级PE变量
ENVI &::V=设置全局PE变量  //等价于SET &::V=设置全局PE变量

"ENVI &V=设置上级PE变量" 修改上级同名PE变量的值;如果无上级同名PE变量,修改本级同名PE变量;如果上层某级存在该级PE同名变量,修改该级PE同名变量. (只修改一次本级或往上某级的同名PE变量)

%&V%的值有3种可能,优先级: [本级PE变量]>[上级PE变量]>[全局PE变量]
回复

使用道具 举报

14248#
发表于 2019-3-22 18:03:49 | 只看该作者
datbik189 发表于 2019-3-22 16:05
测试了不少代码,得出了以下结论,不知对不对.

原理只有程序作者M大最清楚了.

ENVI &&V等价于SET &V
回复

使用道具 举报

14249#
发表于 2019-4-3 23:07:21 | 只看该作者
反馈个问题,2018 版 的 tabl 列表控件,当列表项目很多,需要滚动条时,如果选择了 最后面的项目,再把鼠标移开列表范围,随便在列表范围以外的什么地方点击一下,再回到列表,悬停一会儿,刚才选的条目就会自动改变,此时向上拉动滚动条,会发现上一个滚动条显示范围的某个条目被选中了。
回复

使用道具 举报

14250#
发表于 2019-5-2 17:52:59 | 只看该作者
感谢大神!请教下为何 DISP 自动设置不支持 20吋显示器的分辨率 1600 x 900,有其它方法解决吗?
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-12-28 07:17

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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