无忧启动论坛

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

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

    [复制链接]
17221#
发表于 2022-6-15 01:50:33 | 只看该作者
本帖最后由 红毛樱木 于 2022-6-15 01:53 编辑
Anson4 发表于 2022-6-14 23:03
谢谢回复!
再请教一个问题:
我用 GETF 命令读取 7Z 压缩包的注释内容时,卡在了 GETF -find 上,总是 ...
  1. ENVI^ EnviMode=1
  2. ENVI &File=%&Curdir%\iPack_Orderdrv.7z
  3. ENVI &sG2=<HWID>
  4. STRL -m &sG3=%&sG2%
  5. CALC &sG4=%&sG3%*2
  6. CODE **-UNI,&sG2,**-ANSI,&sG22
  7. GETF -find %&File%,0#*#%&sG4%#0#1#0,&sGC,*&sG22
  8. MESS. <%&sGC%><%&sG4%>

  9. GETF# %&File%,%&sGC%#*,&V1
  10. CODE **-ANSI,&V1,**-UNI,&V

  11. MESS. %&V%@GETF 模式
复制代码

点评

原来是这样,谢谢红毛!  详情 回复 发表于 2022-6-15 02:06
回复

使用道具 举报

17222#
发表于 2022-6-15 02:06:32 | 只看该作者

原来是这样,谢谢红毛!

点评

不是unicode编码,那字节数就不要乘于2了  详情 回复 发表于 2022-6-15 10:06
回复

使用道具 举报

17223#
发表于 2022-6-15 10:06:17 | 只看该作者
Anson4 发表于 2022-6-15 02:06
原来是这样,谢谢红毛!

不是unicode编码,那字节数就不要乘于2了

点评

明白了,谢谢5大回复!  详情 回复 发表于 2022-6-15 10:44
回复

使用道具 举报

17224#
发表于 2022-6-15 10:44:57 | 只看该作者
527104427 发表于 2022-6-15 10:06
不是unicode编码,那字节数就不要乘于2了

明白了,谢谢5大回复!
回复

使用道具 举报

17225#
发表于 2022-6-15 10:51:47 | 只看该作者
M大,下面这个指令,最多接受输入多少个硬件ID(红色部分内容)?

DEVI listdev:&RSTVMD *listdev=c *DevID:'PCI\VEN_8086&DEV_9A0B''PCI\VEN_8086&DEV_09AB''PCI\VEN_8086&DEV_467F' *many *comp+



回复

使用道具 举报

17226#
发表于 2022-6-15 12:20:57 | 只看该作者
mdyblog 发表于 2022-6-14 21:44
_: 是相对系统响应而言的。
再系统响应之后  再响应(执行你写的响应代码)。

下面两条hash命令是否同一个意思?怎么结果不一样呢

set^ EnviMode=1
set^ ForceLocal=1
set$ nl=0d 0a
set aaa=AOC2351AOHD89A006567_22_07DD_E8
hash *aaa,a,md5
hash $%aaa%,b,md5
mess. [%a%]%nl%[%b%]

//[74D7A85364859CC64D9B4684B9B2F433]
//[F852FEE2FBE79198EE1DA8AFA6CD5735]


回复

使用道具 举报

17227#
 楼主| 发表于 2022-6-15 15:22:57 | 只看该作者
527104427 发表于 2022-6-15 12:20
下面两条hash命令是否同一个意思?怎么结果不一样呢

set^ EnviMode=1

  1. set^ EnviMode=1
  2. set^ ForceLocal=1
  3. set$ nl=0d 0a
  4. set aaa=AOC2351AOHD89A006567_22_07DD_E8
  5. CODE **-UNI,&aaa,**-GBK,&aaa8
  6. hash $%aaa%,b,md5
  7. hash *aaa8,a,md5
  8. mess. [%a%]%nl%[%b%]
  9. [F852FEE2FBE79198EE1DA8AFA6CD5735]
  10. [F852FEE2FBE79198EE1DA8AFA6CD5735]
复制代码

点评

原来如此,还要转换成gbk  详情 回复 发表于 2022-6-15 17:57
回复

使用道具 举报

17228#
发表于 2022-6-15 17:57:46 | 只看该作者

原来如此,还要转换成gbk
回复

使用道具 举报

17229#
发表于 2022-6-16 19:09:24 | 只看该作者
mdyblog 发表于 2022-6-14 21:44
_: 是相对系统响应而言的。
再系统响应之后  再响应(执行你写的响应代码)。

那么,在实际使用中,该如何选用呢?
我发现有时候 ENVI @This.MSG=_%&WM_DROPFILES%::&wp,&lp, 不起作用,改成 ENVI @This.MSG=%&WM_DROPFILES%::&wp,&lp, 才可以,但是又找不到规律。

点评

根据实际, 没有定论。 一般 那个都可以。 一般考虑的问题: _则%变量%获得的新数据(操作后) 否则%变量%可能 是操作前的值。 没这个问题,一般 随便用。 因此, 一般用_ 吧。  详情 回复 发表于 2022-6-16 21:07
回复

使用道具 举报

17230#
 楼主| 发表于 2022-6-16 21:07:19 | 只看该作者
Anson4 发表于 2022-6-16 19:09
那么,在实际使用中,该如何选用呢?
我发现有时候 ENVI @This.MSG=_%&WM_DROPFILES%::&wp,&lp, 不起作 ...

根据实际, 没有定论。
一般 那个都可以。

一般考虑的问题:
_则%变量%获得的新数据(操作后)
否则%变量%可能 是操作前的值。
没这个问题,一般 随便用。  

因此, 一般用_ 吧。

点评

M大,这种功能可以实现不:在改分辨率界面,点“识别”按钮,每个屏幕就会弹出数字 [attachimg]503351[/attachimg]  详情 回复 发表于 2022-6-20 12:57
好的,谢谢!  详情 回复 发表于 2022-6-16 23:38
回复

使用道具 举报

17231#
发表于 2022-6-16 23:38:08 | 只看该作者
mdyblog 发表于 2022-6-16 21:07
根据实际, 没有定论。
一般 那个都可以。

好的,谢谢!
回复

使用道具 举报

17232#
发表于 2022-6-20 12:43:18 | 只看该作者
本帖最后由 泮安宁 于 2022-6-20 12:49 编辑

m大,以下代码运行后,编辑框内不填入任何内容,点击开始,程序会自动推出,这个退出的时间有时很快,有时比较慢CALL @win1
_SUB Win1,W320H450,1
    EDIT Path1,L20T280W280H25
    ITEM Start,L110T365W100H50,开始,CALL @Start
_END
_SUB Start
    FIND $%Path1%=,MESS 请输入正确的路径
_END


当把MESS换成MESS=后就不会自动退出了,系统版本
请教m大是什么原因

点评

CALL @ 是窗口 后面的 CALL @Start 没必须带@ 用法不对  详情 回复 发表于 2022-6-20 12:51
回复

使用道具 举报

17233#
发表于 2022-6-20 12:51:21 来自手机 | 只看该作者
泮安宁 发表于 2022-6-20 12:43
m大,以下代码运行后,编辑框内不填入任何内容,点击开始,程序会自动推出,这个退出的时间有时很快,有时 ...

CALL @
是窗口
后面的
CALL @Start
没必须带@
用法不对

点评

明白了,去掉@确实可以了,谢谢大佬  详情 回复 发表于 2022-6-20 12:59
回复

使用道具 举报

17234#
发表于 2022-6-20 12:57:29 | 只看该作者
mdyblog 发表于 2022-6-16 21:07
根据实际, 没有定论。
一般 那个都可以。


M大,这种功能可以实现不:在改分辨率界面,点“识别”按钮,每个屏幕就会弹出数字


点评

画个大的界面,透明,只放一个透明的LABE放数字1,不知道行不行  详情 回复 发表于 2022-6-20 14:30
回复

使用道具 举报

17235#
发表于 2022-6-20 12:59:08 | 只看该作者
红毛樱木 发表于 2022-6-20 12:51
CALL @
是窗口
后面的

明白了,去掉@确实可以了,谢谢大佬
回复

使用道具 举报

17236#
发表于 2022-6-20 14:30:54 | 只看该作者
527104427 发表于 2022-6-20 12:57
M大,这种功能可以实现不:在改分辨率界面,点“识别”按钮,每个屏幕就会弹出数字

画个大的界面,透明,只放一个透明的LABE放数字1,不知道行不行

点评

对。 是这样的。 可以“按颜色透明”。  详情 回复 发表于 2022-6-20 18:22
怎么推送到每个屏幕?  详情 回复 发表于 2022-6-20 17:24
回复

使用道具 举报

17237#
发表于 2022-6-20 17:24:30 | 只看该作者
红毛樱木 发表于 2022-6-20 14:30
画个大的界面,透明,只放一个透明的LABE放数字1,不知道行不行

怎么推送到每个屏幕?

点评

先用DISP 见更多个显示拼成一个大屏幕。 在用坐标来控制, 推送到对应屏幕。  详情 回复 发表于 2022-6-20 18:24
可能需要先这样,再这样,最后再那样吧。  详情 回复 发表于 2022-6-20 17:40
回复

使用道具 举报

17238#
发表于 2022-6-20 17:40:03 | 只看该作者
527104427 发表于 2022-6-20 17:24
怎么推送到每个屏幕?

可能需要先这样,再这样,最后再那样吧。
回复

使用道具 举报

17239#
 楼主| 发表于 2022-6-20 18:22:41 | 只看该作者
红毛樱木 发表于 2022-6-20 14:30
画个大的界面,透明,只放一个透明的LABE放数字1,不知道行不行

对。 是这样的。 可以“按颜色透明”。
回复

使用道具 举报

17240#
 楼主| 发表于 2022-6-20 18:24:06 | 只看该作者
527104427 发表于 2022-6-20 17:24
怎么推送到每个屏幕?

先用DISP 将多个显示拼成一个大屏幕。 再用坐标来控制, 推送到对应屏幕。

点评

另外,disp能否查询显示器总数、哪个是主显示器?  详情 回复 发表于 2022-6-20 19:04
"拼成一个大屏幕"这个用代码怎么实现  详情 回复 发表于 2022-6-20 18:29
回复

使用道具 举报

17241#
发表于 2022-6-20 18:29:10 | 只看该作者
mdyblog 发表于 2022-6-20 18:24
先用DISP 将多个显示拼成一个大屏幕。 再用坐标来控制, 推送到对应屏幕。

"拼成一个大屏幕"这个用代码怎么实现
回复

使用道具 举报

17242#
发表于 2022-6-20 19:04:37 | 只看该作者
mdyblog 发表于 2022-6-20 18:24
先用DISP 将多个显示拼成一个大屏幕。 再用坐标来控制, 推送到对应屏幕。

另外,disp能否查询显示器总数、哪个是主显示器?
回复

使用道具 举报

17243#
发表于 2022-6-20 22:23:32 | 只看该作者
此段代码,为什么Check1的状态获取不到,而Check2的状态可以获取到呢

CALL @win
_SUB win,W200H300
    CHEK Check1,L20T20W20H20
    CHEK Check2,L20T50W20H20
    ITEM Item1,L20T90W60H30,test,CALL abc
_END
_SUB c
    MESS. %Check%b%.Check%
    CALC b=%b%+1
_END
_SUB abc
    SET b=1
    LOOP %b%<=2,CALL c
_END

点评

envi^ EnviMode=1 envi^ ForceLocal=1 CALL @win _SUB win,W200H300 CHEK Check1,L20T20W20H20 CHEK Check2,L20T50W20H20 ITEM Item1,L20T90W60H30,test,CALL abc _END _SUB c ^MESS. %%Ch  详情 回复 发表于 2022-6-20 22:41
回复

使用道具 举报

17244#
发表于 2022-6-20 22:41:15 | 只看该作者
本帖最后由 527104427 于 2022-6-20 22:43 编辑
泮安宁 发表于 2022-6-20 22:23
此段代码,为什么Check1的状态获取不到,而Check2的状态可以获取到呢

CALL @win
方法1:
envi^ EnviMode=1
envi^ ForceLocal=1

CALL @win
_SUB win,W200H300
    CHEK Check1,L20T20W20H20
    CHEK Check2,L20T50W20H20
    ITEM Item1,L20T90W60H30,test,CALL abc
_END
_SUB c
    ^MESS. %%Check%b%.Check%%
    CALC b=%b%+1
_END
_SUB abc
    SET b=1
    LOOP %b%<=2,CALL c
_END
=====================================







方法2:
CALL @win
_SUB win,W200H300
    CHEK Check1,L20T20W20H20
    CHEK Check2,L20T50W20H20
    ITEM Item1,L20T90W60H30,test,CALL abc
_END
_SUB c
    MESS. %Check%b%.Check%
    CALC b=%b%+1
_END
_SUB abc
    envi b=1
    LOOP %b%<=2,CALL c
_END


点评

好的,感谢5大  详情 回复 发表于 2022-6-20 22:59
回复

使用道具 举报

17245#
发表于 2022-6-20 22:59:49 | 只看该作者
527104427 发表于 2022-6-20 22:41
方法1:
envi^ EnviMode=1
envi^ ForceLocal=1

好的,感谢5大
回复

使用道具 举报

17246#
发表于 2022-6-21 10:30:44 | 只看该作者
SED来查找字符串的位置时,如果要查找的字符串是个变量而且包含\&,要怎么处理才能正常运行呢?
比如:
  1. ENVI &HWID=PCI\VEN_15AD&CC_0108
  2. SED *ni &Astr=?,%&HWID%,,%&AllContent%
复制代码


点评

set^ EnviMode=1 set^ ForceLocal=1 set AllContent=PCI\VEN_15AD&CC_0108&SUBSYS_85051043&REV_09 set HWID=PCI\VEN_15AD&CC_0108 set a=+-*&\/|.,^?[] sed -ex b=0,{.},\\\001,a sed -ex c=0,{[%b%]},\\\001  详情 回复 发表于 2022-6-21 12:12
回复

使用道具 举报

17247#
发表于 2022-6-21 11:18:57 | 只看该作者
file命令移动文件,如果有同名文件,能不能弹出提示
回复

使用道具 举报

17248#
发表于 2022-6-21 12:12:12 | 只看该作者
Anson4 发表于 2022-6-21 10:30
用SED来查找字符串的位置时,如果要查找的字符串是个变量而且包含\和&,要怎么处理才能正常运行呢?
比如 ...

set^ EnviMode=1
set^ ForceLocal=1
set AllContent=PCI\VEN_15AD&CC_0108&SUBSYS_85051043&REV_09
set HWID=PCI\VEN_15AD&CC_0108
set a=+-*&\/|.,^?[<()>]
sed -ex b=0,{.},\\\001,a
sed -ex c=0,{[%b%]},\\\001,HWID
sed -ex -ex -ni Astr=?,c,,AllContent
mess. [%Astr%][%c%]

点评

谢谢5大回复! 我看不太懂,好像用 SED -ni c=0,\\,\\\\\\,%HWID% 可以起作用。上面代码中-ex起什么作用呢?PECMD的帮助里还有-e也不知道起什么作用。 我现在的需求有了点变化,具体步骤如下: 1. 用DEVI指令  详情 回复 发表于 2022-6-22 22:22
回复

使用道具 举报

17249#
发表于 2022-6-22 22:22:03 | 只看该作者
本帖最后由 Anson4 于 2022-6-22 22:23 编辑
527104427 发表于 2022-6-21 12:12
set^ EnviMode=1
set^ ForceLocal=1
set AllContent=PCI\VEN_15AD&CC_0108&SUBSYS_85051043&REV_09

谢谢5大回复!
我看不太懂,好像用 SED -ni c=0,\\,\\\\\\,%HWID% 可以起作用。

上面代码中-ex起什么作用呢?PECMD的帮助里还有-e也不知道起什么作用。

随着不断折腾,现在的需求有了点变化,需要具体操作步骤如下:
1. 用DEVI指令获取某硬件的所有ID
2. 读取驱动包中的.inf文件内容到变量,比如 &AllContent
3. 用SED指令在%&AllContent%查找步骤一获取到的ID(最好是能一次查找多个ID,能做到在%&AllContent%每一行的末尾匹配更好
下面附上获取到的兼容ID以及.inf文件
iaStorAC.7z (3.52 KB, 下载次数: 5)
  1. PCI\VEN_8086&DEV_467F&SUBSYS_86941043&REV_00
  2. PCI\VEN_8086&DEV_467F&SUBSYS_86941043
  3. PCI\VEN_8086&DEV_467F&CC_010400
  4. PCI\VEN_8086&DEV_467F&CC_0104

  5. PCI\VEN_8086&DEV_467F&REV_00
  6. PCI\VEN_8086&DEV_467F
  7. PCI\VEN_8086&CC_010400
  8. PCI\VEN_8086&CC_0104
  9. PCI\VEN_8086
  10. PCI\CC_010400&DT_9
  11. PCI\CC_010400
  12. PCI\CC_0104&DT_9
  13. PCI\CC_0104
复制代码



点评

需求太专业,你设想的逻辑和实际需求相差甚远。 你的需求,只有自己创建索引,去操作匹配索引,其他都行不通。  详情 回复 发表于 2022-6-23 00:01
1.我写那段代码的意思是,将sed的所有运算符都加上\ 2.-ex的意思是后面接的是变量名,而不是变量 3.你这个需求太专业了,也许红毛或M大才能解答。就目前我所知的inf,里面千奇百怪,想完全读取出来,太费脑子了  详情 回复 发表于 2022-6-22 22:36
回复

使用道具 举报

17250#
发表于 2022-6-22 22:36:14 | 只看该作者
Anson4 发表于 2022-6-22 22:22
谢谢5大回复!
我看不太懂,好像用 SED -ni c=0,\\,\\\\\\,%HWID% 可以起作用。

1.我写那段代码的意思是,将sed的所有运算符都加上\
2.-ex的意思是后面接的是变量名,而不是变量
3.你这个需求太专业了,也许红毛或M大才能解答。就目前我所知的inf,里面千奇百怪,想完全读取出来,太费脑子了

点评

谢谢! 我大致总结了一下,在.inf文件的每一行的行尾匹配硬件ID,看起来是比较稳妥的了。  详情 回复 发表于 2022-6-22 22:40
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-29 03:48

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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