无忧启动论坛

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

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

    [复制链接]
15631#
发表于 2021-2-11 01:16:43 | 只看该作者
  1. EXEC* -cmd::2000:Get -pid:&get_PID -wait =cmd.exe
  2. _SUB Get
  3.     MESS. t
  4. _END
  5. 这里的2000好像无效哎
复制代码


  1. EXEC -cmd::2000:Get -pid:&get_PID -wait cmd.exe
  2. _SUB Get
  3. MESS. t
  4. _END
  5. 这里的-cmd看上去无效
复制代码


  1. EXEC* -cmd::2000:Get -pid:&get_PID -wait -err+ &a=cmd.exe
  2. _SUB Get
  3. MESS. t<%&a%>
  4. _END
  5. 这个实际是另外一种效果,感觉还是2000没有生效的原因
复制代码


点评

cmd.exe 是一个特别的程序。 不能简单当做普通EXE。 在隐藏时, 一般可以当做 普通EXE。 非隐藏时, 它 还有一个任务:终端。 可以简单理解为 一个dos框架。 找的是 终端输入 和 终端输出, 彩色/黑白窗  详情 回复 发表于 2021-2-11 10:41
回复

使用道具 举报

15632#
 楼主| 发表于 2021-2-11 10:13:34 | 只看该作者
527104427 发表于 2021-2-10 18:07
问题1:
SET &A=143.57   //SET &A=8.79
CALC &&B=%&A%

问题1:
SET &A=143.57   //SET &A=8.79
CALC &&B=%&A%
MESS. [%&B%]  //[143.5699999999999]   //[8.789999999999999]
按理说结果应该是两位小数,可事实却是13位,不知道是BUG不
---------------------------
浮点数, 不是我门看到的10进制存放的。 是2进制。
这样, 2进制存进电脑(内存), 再按10进制取出。 就不能保证 恰好是原来的值。可能有个 “细微的” 偏差。
只有0.5 , 0.25 ,0,125  等特别的数,才能 保持不变。

特别情况下,细微的误差可能导致后面很多位999999。

如果知道原来多少位小数, 直接取 小数位。 一般能得到原来的形式, 因为偏差是 细微的, 而CALC 是按四舍五入处理的, 这样 能得到原来的形式。
CALC &&B=%&A%#2





点评

老大,这个可以实现不 FIND \\?\Harddisk0Partition1\=?,&A MESS. [%&A%] //[0] IFEX \\?\Harddisk0Partition1\=?,&B MESS. [%&B%] //[0]  详情 回复 发表于 2021-2-17 18:33
回复

使用道具 举报

15633#
 楼主| 发表于 2021-2-11 10:27:05 | 只看该作者
527104427 发表于 2021-2-10 18:07
问题1:
SET &A=143.57   //SET &A=8.79
CALC &&B=%&A%

问题2:
SET &A=8.79
SET &B=8.789999999999999
IFEX $%&A%=%&B%, MESS 两个数相同
结果是相同,应该是不同才对
--------------------
原因同上。

因此, 一般不要用 浮点数来判等。
尽量用整数。
上面的数, X100
SET &A=879
SET &B=879
IFEX #%&A%=%&B%, MESS 两个数相同



-------------
calc 8.79 - 8.789999999999999
结果为0 。
有门课程 叫《数值计算》,它告诉我们, 避免 相差的很近的数相减。
比较 相应于减法, 也应该避免 相差的很近的数相比较。

计算机 存储位数有限。
其差别 存储 形态中体现不出来。

8.79 和  8.789999999999999 存储为浮点数, 形态一样。


SET &A=8.79
SET &B=8.789999999999999
此时 A 和 B是字符串形态, 能区分,差别很大。
IFEX #%&A%=%&B%,
此时,会先分别转换为对应的 浮点数形态, 然后执行浮点数比较操作。
两者 的  浮点数形态 相同。  
回复

使用道具 举报

15634#
 楼主| 发表于 2021-2-11 10:41:50 | 只看该作者

cmd.exe
是一个特别的程序。
不能简单当做普通EXE。

在隐藏时, 一般可以当做 普通EXE。

非隐藏时, 它 还有一个任务:终端。  可以简单理解为 一个dos框架。
找的是 终端输入  和 终端输出, 彩色/黑白窗口。

终端 是一种超越WIndows的  标准协议。
这样 导致 CMD.EXE 和 一般的图形EXE 很不同。
CMD.EXE 只是一个壳。
真正的终端  有其他的程序来实现,这样导致极其 扭曲的关系。


一般不要试图 直接捕捉 CMD本身的输入输出。
DOS那一套, Windows也不重视,属于淘汰的。


点评

我只是用来演示的代码,可以换别的exe测试那个2000的值是否有效  详情 回复 发表于 2021-2-11 11:13
回复

使用道具 举报

15635#
发表于 2021-2-11 11:13:31 来自手机 | 只看该作者
mdyblog 发表于 2021-2-11 10:41
cmd.exe
是一个特别的程序。
不能简单当做普通EXE。

我只是用来演示的代码,可以换别的exe测试那个2000的值是否有效

点评

来具体的问题, 具体的 贴切的 演示吧。不能空洞的。  详情 回复 发表于 2021-2-11 11:36
回复

使用道具 举报

15636#
 楼主| 发表于 2021-2-11 11:36:13 | 只看该作者
红毛樱木 发表于 2021-2-11 11:13
我只是用来演示的代码,可以换别的exe测试那个2000的值是否有效

来具体的问题, 具体的 贴切的 演示吧。不能空洞的。

点评

-cmd必须和EXEC*带*一起用才生效。才执行_SUB Get  详情 回复 发表于 2021-2-11 12:19
回复

使用道具 举报

15637#
发表于 2021-2-11 12:19:44 | 只看该作者
mdyblog 发表于 2021-2-11 11:36
来具体的问题, 具体的 贴切的 演示吧。不能空洞的。

test.7z (1.57 MB, 下载次数: 7)


  1. //EXEC* -cmd::2000:Get -pid:&get_PID -wait ="%&CurDir%\UltraISO.EXE"  //可以
  2. //EXEC* -cmd::2000:Get -pid:&get_PID ="%&CurDir%\UltraISO.EXE"  //可以
  3. //EXEC -cmd::2000:Get -pid:&get_PID -wait "%&CurDir%\UltraISO.EXE"  //不可以
  4. EXEC -cmd::2000:Get -pid:&get_PID "%&CurDir%\UltraISO.EXE"  //不可以
  5. _SUB Get
  6.     MESS. t
  7. _END
复制代码



-cmd必须和EXEC*带*一起用才生效。才执行_SUB Get

点评

-cmd 是的 EXEC*的扩展。 因此 必须 和 EXEC* 一起用。 至于 没有 EXEC*, 可以用其它方式 来实现。  详情 回复 发表于 2021-2-11 15:26
回复

使用道具 举报

15638#
 楼主| 发表于 2021-2-11 15:26:50 | 只看该作者
红毛樱木 发表于 2021-2-11 12:19
-cmd必须和EXEC*带*一起用才生效。才执行_SUB Get

-cmd  是的 EXEC*的扩展。
因此 必须  和 EXEC* 一起用。

至于 没有 EXEC*, 可以用其它方式 来实现。

点评

这种被执行的程序有返回信息的时候,实时返回数据了,不是按照设定的2000间隔获取,老大这个能改下吗?  详情 回复 发表于 2021-2-12 02:13
回复

使用道具 举报

15639#
发表于 2021-2-12 02:13:21 | 只看该作者
mdyblog 发表于 2021-2-11 15:26
-cmd  是的 EXEC*的扩展。
因此 必须  和 EXEC* 一起用。
  1. EXEC* -cmd::2000:Get -pid:&get_PID -err+ &a=bcdedit.exe
  2. _SUB Get
  3.     MESS %&a%
  4. _END
复制代码



这种被执行的程序有返回信息的时候,实时返回数据了,不是按照设定的2000间隔获取,老大这个能改下吗?

点评

你这个 瞬间 就完成了。 例子比恰当。 示例中好像有一个 间隔的。 间隔 最终取决于 执行的程序。 如果要定时, 还是用TIMER吧。 这个 主要是 用来捕捉行,避免半行半字, 不是用来定时的。 “示例\OnM  详情 回复 发表于 2021-2-12 09:12
回复

使用道具 举报

15640#
 楼主| 发表于 2021-2-12 09:12:01 | 只看该作者
本帖最后由 mdyblog 于 2021-2-12 09:16 编辑
红毛樱木 发表于 2021-2-12 02:13
这种被执行的程序有返回信息的时候,实时返回数据了,不是按照设定的2000间隔获取,老大这个能改下 ...

你这个 瞬间 就完成了。
例子不恰当。

示例中好像有一个 间隔显示的。
间隔 最终取决于  执行的程序。

如果要定时, 还是用TIMER吧。 这个 主要是 用来捕捉行,避免半行半字, 不是用来定时的。


“示例\OnMsg.WCS"(20,12):    EXEC* --cmd::200:OnMsg  MSG=*%&MyName%  FORX * 1 2 3 4 5,I, TEAM WRIT  -,$,%%I%%| WAIT  200  

点评

这种需求可能用TIME不太合适了。 如果同时进行多个wget.exe任务的时候  详情 回复 发表于 2021-2-12 09:38
回复

使用道具 举报

15641#
发表于 2021-2-12 09:38:12 | 只看该作者
本帖最后由 红毛樱木 于 2021-2-12 09:42 编辑
mdyblog 发表于 2021-2-12 09:12
你这个 瞬间 就完成了。
例子不恰当。


x86.7z (1.26 MB, 下载次数: 19)
这种需求可能用TIME不太合适了。
如果同时多个线程执行多个进程wget.exe任务的时候

点评

[attachimg]475182[/attachimg]  详情 回复 发表于 2021-2-12 11:54
回复

使用道具 举报

15642#
 楼主| 发表于 2021-2-12 11:54:58 | 只看该作者
红毛樱木 发表于 2021-2-12 09:38
这种需求可能用TIME不太合适了。
如果同时多个线程执行多个进程wget.exe任务的时候

test.wcs.zip (804 Bytes, 下载次数: 7)


点评

M大,我意思是: 假如我同时开8个线程去执行8个不同的wget.exe进程下载文件,这样用TIME就不好线程里操作了。  详情 回复 发表于 2021-2-12 12:08
回复

使用道具 举报

15643#
发表于 2021-2-12 12:08:58 | 只看该作者

M大,我意思是:
假如我同时开8个线程去执行8个不同的wget.exe进程下载文件,这样用TIME就不好线程里操作了。

点评

16个变量就可以了。  详情 回复 发表于 2021-2-12 12:18
回复

使用道具 举报

15644#
 楼主| 发表于 2021-2-12 12:18:32 | 只看该作者
红毛樱木 发表于 2021-2-12 12:08
M大,我意思是:
假如我同时开8个线程去执行8个不同的wget.exe进程下载文件,这样用TIME就不好线程里操 ...

16组变量(+定时器)就可以了。

点评

哦哦哦,没反应过来。我试试  详情 回复 发表于 2021-2-12 12:30
回复

使用道具 举报

15645#
发表于 2021-2-12 12:30:42 | 只看该作者
mdyblog 发表于 2021-2-12 12:18
16组变量(+定时器)就可以了。

哦哦哦,没反应过来。我试试----------------
不过能改一下的话,应该更方便一些。

点评

[attachimg]475185[/attachimg]  详情 回复 发表于 2021-2-12 13:13
回复

使用道具 举报

15646#
 楼主| 发表于 2021-2-12 13:13:53 | 只看该作者
红毛樱木 发表于 2021-2-12 12:30
哦哦哦,没反应过来。我试试----------------
不过能改一下的话,应该更方便一些。

test-2.wcs.zip (1.12 KB, 下载次数: 14)


回复

使用道具 举报

15647#
发表于 2021-2-13 02:06:16 | 只看该作者
  1. CALL @MAIN
  2. _SUB MAIN,W800H600,test,,, //:0xFFFFFF
  3.     LABE ,L20T10W128H48,请点击"打开"按钮以浏览文件。
  4.     LABE -trans ,L20T60W128H48,请点击"打开"按钮以浏览文件。
  5.     LABE -right -trans -nf ,L20T110W128H48,请点击"打开"按钮以浏览文件。
  6. _END
复制代码




LABE有新情况
-trans时,不能多行
-right -trans -nf  组合时,不显示内容
回复

使用道具 举报

15648#
发表于 2021-2-14 00:45:36 | 只看该作者
感谢楼主分享!
回复

使用道具 举报

15649#
发表于 2021-2-17 11:07:03 | 只看该作者
感谢分享
回复

使用道具 举报

15650#
发表于 2021-2-17 18:33:58 | 只看该作者
mdyblog 发表于 2021-2-11 10:13
问题1:
SET &A=143.57   //SET &A=8.79
CALC &&B=%&A%

老大,这个可以实现不
FIND \\?\Harddisk0Partition1\=?,&A
MESS. [%&A%]   //[0]
IFEX \\?\Harddisk0Partition1\=?,&B
MESS. [%&B%]   //[0]

点评

PECMD2012.1.88.05.85Stable-210218测试测试.7z  详情 回复 发表于 2021-2-19 04:13
回复

使用道具 举报

15651#
发表于 2021-2-19 00:17:31 | 只看该作者
赞一个!
回复

使用道具 举报

15652#
 楼主| 发表于 2021-2-19 04:13:11 | 只看该作者
527104427 发表于 2021-2-17 18:33
老大,这个可以实现不
FIND \\?\Harddisk0Partition1\=?,&A
MESS. [%&A%]   //[0]

PECMD2012.1.88.05.85Stable-210218测试测试.7z

点评

测试成功。 关于上次说的浮点数的问题,我尝试写了一段代码测试,结果跟老大说的一样。看来编程的方法也不可靠,没办法做到精确比较大小 [attachimg]475548[/attachimg]  详情 回复 发表于 2021-2-19 11:08
回复

使用道具 举报

15653#
发表于 2021-2-19 11:08:06 | 只看该作者
mdyblog 发表于 2021-2-19 04:13
PECMD2012.1.88.05.85Stable-210218测试测试.7z

测试成功。

关于上次说的浮点数的问题,我尝试写了一段代码测试,结果跟老大说的一样。看来编程的方法也不可靠,没办法做到精确比较大小


回复

使用道具 举报

15654#
 楼主| 发表于 2021-2-19 21:03:35 | 只看该作者
本帖最后由 mdyblog 于 2021-2-20 17:37 编辑
红毛樱木 发表于 2021-2-10 21:14
是好奇葩哎,
SET &A=143.57   //SET &A=8.79
CALC &&B=%&A%#3

SET &A=143.57   //SET &A=8.79
CALC &&B=%&A%#3
MESS. [%&B%]  //[143.5699999999999]   //[8.789999999999999]
这样又只有2位小数点的,啊哈哈
------------------------------
#3
得到的为
143.570
最后的 0被优化了,得到
143.57


##3 则不优化 掉,得到
CALC &&B2=%&A%##3

得到
143.570


点评

请教一下 CALC-txt 是什么含义,怎么用呢  详情 回复 发表于 2021-2-20 22:30
回复

使用道具 举报

15655#
发表于 2021-2-20 22:30:35 | 只看该作者
mdyblog 发表于 2021-2-19 21:03
SET &A=143.57   //SET &A=8.79
CALC &&B=%&A%#3
MESS. [%&B%]  //[143.5699999999999]   //[8.7899999 ...

请教一下 CALC-txt  是什么含义,怎么用呢

点评

显示 用MESS-txt MESS-txt : 显示 出来 不能拷贝, 类似LABE显示。 还有 CALC-cb。 对应 MESS-sb, 就是同时拷贝到剪切板。  详情 回复 发表于 2021-2-21 04:54
回复

使用道具 举报

15656#
 楼主| 发表于 2021-2-21 04:54:18 | 只看该作者
527104427 发表于 2021-2-20 22:30
请教一下 CALC-txt  是什么含义,怎么用呢

显示 时, 用MESS-txt
MESS-txt : 显示 出来 不能拷贝/选取, 类似LABE显示。


还有 CALC-cb。 对应  MESS-cb, 就是同时拷贝到剪切板。

点评

哦,原来这样。  详情 回复 发表于 2021-2-21 11:45
回复

使用道具 举报

15657#
发表于 2021-2-21 11:45:56 | 只看该作者
mdyblog 发表于 2021-2-21 04:54
显示 时, 用MESS-txt
MESS-txt : 显示 出来 不能拷贝/选取, 类似LABE显示。

哦,原来这样。
回复

使用道具 举报

15658#
发表于 2021-2-21 20:24:05 | 只看该作者
PECMD2012.1.88.05.85Stable-210216에서 오류 메세지?


点评

试试 0223  详情 回复 发表于 2021-2-23 09:17
回复

使用道具 举报

15659#
 楼主| 发表于 2021-2-23 09:17:07 | 只看该作者
koko4u 发表于 2021-2-21 20:24
PECMD2012.1.88.05.85Stable-210216에서 오류 메세지?

试试 0223

点评

同样,我也会收到错误消息。 [attachimg]475721[/attachimg] [attachimg]475722[/attachimg]  详情 回复 发表于 2021-2-23 13:29
回复

使用道具 举报

15660#
发表于 2021-2-23 12:14:43 | 只看该作者
来了来了
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2026-1-22 00:51

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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