无忧启动论坛

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

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

    [复制链接]
18601#
发表于 2023-6-4 20:19:02 | 只看该作者
泮安宁 发表于 2023-6-4 16:55
EXEC的管道模式怎么用
EXEC|  !a.exe  | !=b.exe > c.txt
可以把b.exe的输出保存到文件,怎么能直接保存 ...

※EXEC*[[数字^$]|N|-] NAME= 表示将程序的标准输出存入指定变量NAME中,强制为等待方式。

点评

不行的,我试过了 EXEC*| !a.exe | &a=!b.exe 这样不行,是写错了还是不支持  详情 回复 发表于 2023-6-4 21:09
回复

使用道具 举报

18602#
发表于 2023-6-4 21:09:22 | 只看该作者
本帖最后由 泮安宁 于 2023-6-4 21:31 编辑
红毛樱木 发表于 2023-6-4 20:19
※EXEC*[[数字^$]|N|-] NAME= 表示将程序的标准输出存入指定变量NAME中,强制为等待方式。

不行的,我试过了
EXEC*|  !a.exe  | &a=!b.exe
这样不行,是写错了还是不支持
Tutorial (jqlang.github.io)上面一个例子
curl -k "https://api.github.com/repos/jqlang/jq/commits?per_page=5" | jq "."

点评

你这是啥写法,批处理么。。。那么多|和! 也没有EXEC*|的写法  详情 回复 发表于 2023-6-5 18:52
谁说不行? exec*| -hide a=*curl -k "https://api.github.com/repos/jqlang/jq/commits?per_page=5" | jq "." [attachimg]527594[/attachimg] jq.exe有3.36m,用PECMD命令也能实现啊,何必呢?  详情 回复 发表于 2023-6-4 22:24
回复

使用道具 举报

18603#
发表于 2023-6-4 22:24:58 | 只看该作者
泮安宁 发表于 2023-6-4 21:09
不行的,我试过了
EXEC*|  !a.exe  | &a=!b.exe
这样不行,是写错了还是不支持


谁说不行?

exec*| -hide a=*curl -k "https://api.github.com/repos/jqlang/jq/commits?per_page=5" | jq "."






jq.exe有3.36m,用PECMD命令也能实现啊,何必呢?

set^ EnviMode=1
set^ ForceLocal=1
exec* -hide b=*curl -k "https://api.github.com/repos/jqlang/jq/commits?per_page=5"
read -*,*r,b,b
mess. [%b%]



点评

b=*curl 这里的*好像无意义吧?  详情 回复 发表于 2023-6-5 18:51
咱们两个写的不一样啊,所以说是我写错了啊,变量放错了位置 谢谢指点  详情 回复 发表于 2023-6-4 22:50
回复

使用道具 举报

18604#
发表于 2023-6-4 22:50:51 | 只看该作者
489432757 发表于 2023-6-4 22:24
谁说不行?

exec*| -hide a=*curl -k "https://api.github.com/repos/jqlang/jq/commits?per_page=5 ...

咱们两个写的不一样啊,所以说是我写错了啊,变量放错了位置
谢谢指点
回复

使用道具 举报

18605#
发表于 2023-6-5 17:28:03 | 只看该作者
6
回复

使用道具 举报

18606#
发表于 2023-6-5 17:28:16 | 只看该作者
6
回复

使用道具 举报

18607#
发表于 2023-6-5 17:28:38 | 只看该作者
6
回复

使用道具 举报

18608#
发表于 2023-6-5 18:51:54 | 只看该作者
489432757 发表于 2023-6-4 22:24
谁说不行?

exec*| -hide a=*curl -k "https://api.github.com/repos/jqlang/jq/commits?per_page=5 ...

b=*curl
这里的*好像无意义吧?

点评

-hide 隐藏 jq.exe * 隐藏 curl.exe 只运行一个控制台程序无所谓 -hide 还是 *  详情 回复 发表于 2023-6-5 19:53
回复

使用道具 举报

18609#
发表于 2023-6-5 18:52:44 | 只看该作者
泮安宁 发表于 2023-6-4 21:09
不行的,我试过了
EXEC*|  !a.exe  | &a=!b.exe
这样不行,是写错了还是不支持

你这是啥写法,批处理么。。。那么多|和!
也没有EXEC*|的写法
回复

使用道具 举报

18610#
发表于 2023-6-5 19:53:41 | 只看该作者
红毛樱木 发表于 2023-6-5 18:51
b=*curl
这里的*好像无意义吧?

-hide 隐藏 jq.exe
* 隐藏 curl.exe
只运行一个控制台程序无所谓 -hide 还是 *

点评

一般这样子写 EXEC* -wait -hide b=curl xxxxxxxxxxxxxxx  详情 回复 发表于 2023-6-5 20:05
回复

使用道具 举报

18611#
发表于 2023-6-5 20:05:02 | 只看该作者
489432757 发表于 2023-6-5 19:53
-hide 隐藏 jq.exe
* 隐藏 curl.exe
只运行一个控制台程序无所谓 -hide 还是 *

一般这样子写
EXEC* -wait -hide b=curl xxxxxxxxxxxxxxx

点评

就是pecmd啊 试了,这样是可以的 EXEC*| &c=!a.exe | !b.exe  详情 回复 发表于 2023-6-5 20:53
回复

使用道具 举报

18612#
发表于 2023-6-5 20:53:08 | 只看该作者
本帖最后由 泮安宁 于 2023-6-5 20:58 编辑
红毛樱木 发表于 2023-6-5 20:05
一般这样子写
EXEC* -wait -hide b=curl xxxxxxxxxxxxxxx

就是pecmd啊
试了,这样是可以的
EXEC*|  &c=!a.exe  | !b.exe
MESS %&c%

点评

你这里后面的 | !b.exe 是给程序a.exe的参数吗?  详情 回复 发表于 2023-6-5 23:10
回复

使用道具 举报

18613#
发表于 2023-6-5 21:39:18 来自手机 | 只看该作者
本帖最后由 conlin888 于 2023-6-5 21:43 编辑

没见过这么奇怪的用法,一般都是exec* &v=*xxx.exe 参数表 或者 exec* -raw &ⅴ=*xxx.exe 参数表,后者要用code命令转成uni编码。
exec*是捕获管道输出,命令表又用"丨"管道命令,很弄易出错。一般是捕获全部数据,再用sed或lpos查找特定字符。

点评

个人认为: EXEC* -hide &v=xxx.exe 这种比较标准一些。 另外这种捕获应该加上-err+比较稳妥。 EXEC* -hide -err+ &v="d:\xxx.exe"  详情 回复 发表于 2023-6-5 23:09
回复

使用道具 举报

18614#
发表于 2023-6-5 23:09:23 | 只看该作者
conlin888 发表于 2023-6-5 21:39
没见过这么奇怪的用法,一般都是exec* &v=*xxx.exe 参数表 或者 exec* -raw &ⅴ=*xxx.exe 参数表,后者要用 ...

个人认为:
EXEC* -hide &v=xxx.exe
这种比较标准一些。
另外这种捕获应该加上-err+比较稳妥。
EXEC* -hide -err+ &v="d:\xxx.exe"

点评

不错,你的写法比较规范! 我只是习惯了, exec =*xxx.exe 或 exec =@xxx.exe  详情 回复 发表于 2023-6-6 09:31
回复

使用道具 举报

18615#
发表于 2023-6-5 23:10:06 | 只看该作者
泮安宁 发表于 2023-6-5 20:53
就是pecmd啊
试了,这样是可以的
EXEC*|  &c=!a.exe  | !b.exe

你这里后面的
| !b.exe
是给程序a.exe的参数吗?

点评

不是,管道模式,a.exe的输出作为b.exe的输入  详情 回复 发表于 2023-6-5 23:13
回复

使用道具 举报

18616#
发表于 2023-6-5 23:13:18 | 只看该作者
红毛樱木 发表于 2023-6-5 23:10
你这里后面的
| !b.exe
是给程序a.exe的参数吗?

不是,管道模式,a.exe的输出作为b.exe的输入

点评

EXEC*| &c=!a.exe | !b.exe --------------------- 不应该写成这样子才对吗? EXEC* -hide -err+ &c=a.exe ^EXEC -wait -hide b.exe %&c% --------------------- 仅个人观点  详情 回复 发表于 2023-6-5 23:17
回复

使用道具 举报

18617#
发表于 2023-6-5 23:17:50 | 只看该作者
泮安宁 发表于 2023-6-5 23:13
不是,管道模式,a.exe的输出作为b.exe的输入

EXEC*|  &c=!a.exe  | !b.exe
---------------------
不应该写成这样子才对吗?
EXEC* -hide -err+ &c=a.exe
^EXEC -wait -hide b.exe %&c%
---------------------
仅个人观点

点评

上面提到的jq.exe是解析json的程序,它后面的参数好像不能跟你写的这种把json内容保存在变量中的形式,我试过像你这样这,没成功(不知道是不是因为我哪里操作不对),后边参数只能跟本地文件路径,要么就用管道,官方  详情 回复 发表于 2023-6-5 23:36
回复

使用道具 举报

18618#
发表于 2023-6-5 23:36:52 | 只看该作者
本帖最后由 泮安宁 于 2023-6-5 23:38 编辑
红毛樱木 发表于 2023-6-5 23:17
EXEC*|  &c=!a.exe  | !b.exe
---------------------
不应该写成这样子才对吗?

上面提到的jq.exe是解析json的程序,它后面的参数好像不能跟你写的这种把json内容保存在变量中的形式(a.exe返回的内容就是json内容),我试过像你这样写,没成功(不知道是不是因为我哪里操作不对),后边参数只能跟本地文件路径,要么就用管道,官方给的示例也是用的管道传递的
上边有链接你可以下载jq.exe试一下
回复

使用道具 举报

18619#
发表于 2023-6-6 09:27:45 | 只看该作者
本帖最后由 conlin888 于 2023-6-7 11:04 编辑

楼层18607#的大哥已经给出了标准答案.

exec*| &v=*curl.exe -k "https://api.github.com/repos/jqlang/jq/commits?per_page=5"|=*jq.exe "."

或者用cmd中转一下:

exec* &v=*cmd.exe /c for /f "delims=" %%i in ('call curl.exe -k "https://api.github.com/repos/jqlang/jq/commits?per_page=5"^|jq "."^|find /v /n ""') do @echo %%i

//以下命令为去掉行号
//Team set$ &nl=d a|sed -ex &v=0,^\[\d+\],,&v|sed -ex &v=0,%&nl%\[\d+\],%&nl%,&v|sed -ex &v=0,%&nl%$,,&v






回复

使用道具 举报

18620#
发表于 2023-6-6 09:31:06 | 只看该作者
红毛樱木 发表于 2023-6-5 23:09
个人认为:
EXEC* -hide &v=xxx.exe
这种比较标准一些。

不错,你的写法比较规范!

我只是习惯了, exec =*xxx.exe 或  exec =@xxx.exe
回复

使用道具 举报

18621#
发表于 2023-6-9 18:23:31 | 只看该作者
WIN1
_SUB WIN1,W600H400,,,,,,
      TABS tabs1,L0T0H400W600,sub,0x10
_END
_SUB sub,W600H400,,,,
    ENVI @this.bkcolor=0x000000
_END
TABS状态设置为不可见,但是上面还是会空出原来按钮的位置,有没有办法去掉
另外,子界面的个数可以动态增加吗,类似于LIST的
ENVI @下拉列表框名称.ADDSEL=新增加或选择的条目
回复

使用道具 举报

18622#
发表于 2023-6-9 19:58:43 | 只看该作者
泮安宁 发表于 2023-6-9 18:23
WIN1
_SUB WIN1,W600H400,,,,,,
      TABS tabs1,L0T0H400W600,sub,0x10

你这需求,还不如直接SWIN了
回复

使用道具 举报

18623#
发表于 2023-6-9 20:23:41 | 只看该作者
红毛樱木 发表于 2023-6-9 19:58
你这需求,还不如直接SWIN了

本来是想用的swin,但是不知道怎么实现类似TABS的切换窗口的功能,大佬来个例子
回复

使用道具 举报

18624#
发表于 2023-6-10 02:49:24 来自手机 | 只看该作者
泮安宁 发表于 2023-6-9 20:23
本来是想用的swin,但是不知道怎么实现类似TABS的切换窗口的功能,大佬来个例子

搞按钮对应显示、隐藏swin
回复

使用道具 举报

18625#
发表于 2023-6-10 12:47:11 | 只看该作者
红毛樱木 发表于 2023-6-10 02:49
搞按钮对应显示、隐藏swin
  1. WIN1
  2. _SUB WIN1,W600H500,新窗口1,
  3.     SWIN swin1:page1:a,L0T0W600H400,,0x180
  4.     ENVI @a.visable=0
  5.     SWIN swin2:page2:b,L0T0W600H400,,0x180   
  6.     ENVI @b.visable=1
  7.     ITEM ITEM0,L289T418W60H30,切换,TEAM ENVI @a.visable=1|ENVI @b.visable=0,
  8. _END
  9. _SUB page1,W600H400,
  10.     ITEM ITEM1,L215T98W60H30,ITEM1,MESS 1
  11. _END
  12. _SUB page2,W600H400,
  13.     ENVI @this.bkcolor=0x000000
  14.     ITEM ITEM2,L215T125W60H30,ITEM2,MESS 2
  15. _END
复制代码
这个早就试过不管用才想着用tabs大佬看看我哪里写的不对

回复

使用道具 举报

18626#
发表于 2023-6-10 20:35:41 | 只看该作者
泮安宁 发表于 2023-6-10 12:47
这个早就试过不管用才想着用tabs大佬看看我哪里写的不对
  1. CALL @WIN1
  2. _SUB WIN1,W600H500,新窗口1,
  3.     SWIN -:page1:,L0T0W600H400,,0x180
  4.     ENVI @a.visable=0
  5.     SWIN -:page2:,L0T0W600H400,,0x190   
  6.     ENVI @b.visable=1
  7.     ITEM ,L189T418W60H30,显示page1,TEAM ENVI @page1.visable=1| ENVI @page2.visable=0,
  8.     ITEM ,L289T418W60H30,显示page2,TEAM ENVI @page1.visable=0| ENVI @page2.visable=1,
  9. _END
  10. _SUB page1,W600H400,
  11.     ITEM ITEM1,L215T98W60H30,ITEM1,MESS 1
  12. _END
  13. _SUB page2,W600H400,
  14.     ENVI @this.bkcolor=0x000000
  15.     ITEM ITEM2,L215T125W60H30,ITEM2,MESS 2
  16. _END
复制代码


第二种格式比较省事的。
回复

使用道具 举报

18627#
发表于 2023-6-10 20:43:55 | 只看该作者
本帖最后由 泮安宁 于 2023-6-10 21:01 编辑
红毛樱木 发表于 2023-6-10 20:35
第二种格式比较省事的。

这个格式和我写的那种格式子窗口控件层级一样吗,不一样的话代码要大改了这种格式没有画框名,画框id怎么获取
回复

使用道具 举报

18628#
发表于 2023-6-11 01:52:23 | 只看该作者
泮安宁 发表于 2023-6-10 20:43
这个格式和我写的那种格式子窗口控件层级一样吗,不一样的话代码要大改了这种格式没有画框名, ...
  1. CALL @WIN1
  2. _SUB WIN1,W600H500,新窗口1,
  3.     SWIN swin1:page1:a,L0T0W600H400,,0x180
  4.     ENVI @a.visible=0
  5.     SWIN swin2:page2:b,L0T0W600H400,,0x180   
  6.     ENVI @b.visible=1
  7.     ITEM ITEM0,L289T418W60H30,切换,TEAM ENVI @a.visible=1| ENVI @b.visible=0,
  8. _END
  9. _SUB page1,W600H400,
  10.     ITEM ITEM1,L215T98W60H30,ITEM1,MESS 1
  11. _END
  12. _SUB page2,W600H400,
  13.     ENVI @this.bkcolor=0x000000
  14.     ITEM ITEM2,L215T125W60H30,ITEM2,MESS 2
  15. _END
复制代码


那就按你的写,visible不是visable
回复

使用道具 举报

18629#
发表于 2023-6-11 02:58:25 | 只看该作者
本帖最后由 泮安宁 于 2023-6-11 03:08 编辑
红毛樱木 发表于 2023-6-11 01:52
那就按你的写,visible不是visable

没注意到写错了,我一直都用的旧版pecmd(PECMD2012.1.88.05.94Stable-220728U测试.7z),这个格式一直不行,你写的那个格式可以,今天换了最新版,格式一也可以了应该是个bug
--------------------------------------
最新版也有问题,背景色可以显示出来了,但切换后按钮不能点
要不还是用你写的那个格式吧,响应滚动条的示例要怎么改成格式2
  1. SWIN SWIN1:Page11:-SWINMAIN,L42T30W194H500,,0x40
  2. ENVI @SWINMAIN:SWIN1.ID=?&Swin1_Wid   //画框ID
  3. ENVI @SWINMAIN.ID=?&SWINMAIN_Wid    //与Page11窗口ID相同%&Page1_WID%
复制代码




回复

使用道具 举报

18630#
发表于 2023-6-11 15:34:15 | 只看该作者
本帖最后由 红毛樱木 于 2023-6-11 15:35 编辑
红毛樱木 发表于 2023-6-11 01:52
那就按你的写,visible不是visable
  1. CALL @WIN1
  2. _SUB WIN1,W600H500,新窗口1,
  3.     SWIN swin1:page1:a,L0T0W600H400,,0x180
  4.     ENVI @a:swin1.ID=?&swin1_Wid
  5.     ENVI @@Visible=%&swin1_Wid%:0
  6.     SWIN swin2:page2:b,L0T0W600H400,,0x180
  7.     ENVI @b:swin2.ID=?&swin2_Wid
  8.     ITEM ITEM0,L289T418W60H30,切换,TEAM ENVI @@Visible=%&swin2_Wid%:0| ENVI @@Visible=%&swin1_Wid%:1
  9. _END
  10. _SUB page1,W600H400,
  11.     ITEM ITEM1,L215T98W60H30,ITEM1,MESS 1
  12. _END
  13. _SUB page2,W600H400,
  14.     ENVI @this.bkcolor=0x000000
  15.     ITEM ITEM2,L215T125W60H30,ITEM2,MESS 2
  16. _END
复制代码


说明书里备注的,第一种格式是“//画中画”
在你这里a和b不是SWIN的主窗口。参考示例代码中的:SWIN穿透操作.wcs
---------------------------------------
好像ENVI @b:swin2.Visible=0这样直接操作不行,看样子还需要M大处理一下这种格式。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-4-27 03:17

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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