无忧启动论坛

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

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

    [复制链接]
14401#
 楼主| 发表于 2019-10-15 02:21:02 | 只看该作者
本帖最后由 mdyblog 于 2019-10-16 04:08 编辑

论文:球壳内光速和真空光速不唯一性
请求各位转发分享(到朋友圈、博客、论坛等等)
回复

使用道具 举报

14402#
发表于 2019-10-16 01:20:21 | 只看该作者
请教,有没有类似GETF -find的功能,直接查找变量中的数据?
比如:
GETF -find本来是查找大文件的,现在直接把大文件读到变量里,然后在变量里GETF -find

点评

可以 ■文件名称: -bin 或 &开头则为PE变量  详情 回复 发表于 2019-10-16 02:17
回复

使用道具 举报

14403#
 楼主| 发表于 2019-10-16 02:17:13 | 只看该作者
红毛樱木 发表于 2019-10-16 01:20
请教,有没有类似GETF -find的功能,直接查找变量中的数据?
比如:
GETF -find本来是查找大文件的,现在 ...

可以
■文件名称:    -bin 或   &开头则为PE变量  

点评

测试结果,内存模式反而慢?  详情 回复 发表于 2019-10-16 10:37
感谢,我自己多此一举了。 把GETF -find里的用"*&"了。。。。多了一个*  详情 回复 发表于 2019-10-16 08:07
回复

使用道具 举报

14404#
发表于 2019-10-16 08:07:36 | 只看该作者
mdyblog 发表于 2019-10-16 02:17
可以
■文件名称:    -bin 或   &开头则为PE变量

感谢,我自己多此一举了。
把GETF -find里的<大文件名称>用"*&"了。。。。多了一个*
回复

使用道具 举报

14405#
发表于 2019-10-16 10:37:07 | 只看该作者
mdyblog 发表于 2019-10-16 02:17
可以
■文件名称:    -bin 或   &开头则为PE变量

文件、内存模式对比测试.7z (91.15 KB, 下载次数: 2)

测试结果,内存模式反而慢?

点评

先把文件全部读到内存, 再在内存中处理。 这样会慢的。 等读完文件, 在处理, 有个等待时间。 原来,不用长长等待。 一般不用折磨做的。 系统自己会用内资缓冲的。 只有一个文件, 反复 操作, 才需要认  详情 回复 发表于 2019-10-16 15:20
回复

使用道具 举报

14406#
 楼主| 发表于 2019-10-16 15:20:33 | 只看该作者
红毛樱木 发表于 2019-10-16 10:37
测试结果,内存模式反而慢?


先把文件全部读到内存, 再在内存中处理。

这样会慢的。
等读完文件, 在处理, 有个等待时间。
原来,不用长长等待。

一般不用折磨做的。 系统自己会用内资缓冲的。
只有一个文件, 反复 操作, 才需要人为缓冲。

点评

等读完文件, 在处理, 有个等待时间。 ------------------------------------------- 演示代码就是先读完的,后面的时间对比,是读完之后的对比。  详情 回复 发表于 2019-10-16 16:10
哦哦。 以为内存中可以提速呢,希望破灭  详情 回复 发表于 2019-10-16 15:29
回复

使用道具 举报

14407#
发表于 2019-10-16 15:29:44 | 只看该作者
mdyblog 发表于 2019-10-16 15:20
先把文件全部读到内存, 再在内存中处理。

这样会慢的。

哦哦。
以为内存中可以提速呢,希望破灭
回复

使用道具 举报

14408#
发表于 2019-10-16 16:10:33 | 只看该作者
mdyblog 发表于 2019-10-16 15:20
先把文件全部读到内存, 再在内存中处理。

这样会慢的。

等读完文件, 在处理, 有个等待时间。

-------------------------------------------
演示代码就是先读完的,后面的时间对比,是读完之后的对比。

点评

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

使用道具 举报

14409#
发表于 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
回复

使用道具 举报

14410#
发表于 2019-10-16 17:23:13 | 只看该作者
datbik189 发表于 2019-10-16 16:54
以前测试过diskpart的脚本,
效率最高的读文件办法是: TEAM GETF# 123.txt,1024*1024,&V|Code **-ANSI, ...

不太清楚内部机制。
不过我是一次性读完到变量,后面再GETF -find成千上万次,按照逻辑上我想应该会更快才对。

点评

只要系统内存足够。 不 人为缓冲, 系统自动缓冲。 后面的操作实际也是直接从内存读取的, 不从硬盘。 人为缓冲, 则, 即使内存 吃紧, 也线满足本应用要求,其它的可先 让出内存。  详情 回复 发表于 2019-10-18 21:57
回复

使用道具 举报

14411#
 楼主| 发表于 2019-10-18 21:57:29 | 只看该作者
本帖最后由 mdyblog 于 2019-10-18 22:08 编辑
红毛樱木 发表于 2019-10-16 17:23
不太清楚内部机制。
不过我是一次性读完到变量,后面再GETF -find成千上万次,按照逻辑上我想应该会更快 ...


只要系统内存足够。

不 人为缓冲, 系统自动缓冲。 后面的操作实际也是直接从内存读取的, 不从硬盘。


人为缓冲,  则, 即使内存 吃紧, 也先满足本应用要求,其它的可先 让出内存。

点评

哦,哦。 m大,上面我发的那个示例代码,没办法提速了么?  详情 回复 发表于 2019-10-18 22:48
回复

使用道具 举报

14412#
发表于 2019-10-18 22:48:20 来自手机 | 只看该作者
mdyblog 发表于 2019-10-18 21:57
只要系统内存足够。

不 人为缓冲, 系统自动缓冲。 后面的操作实际也是直接从内存读取的, 不从硬盘 ...

哦,哦。
m大,上面我发的那个示例代码,没办法提速了么?

点评

我看看吧。  详情 回复 发表于 2019-10-19 21:58
回复

使用道具 举报

14413#
 楼主| 发表于 2019-10-19 21:58:18 | 只看该作者
红毛樱木 发表于 2019-10-18 22:48
哦,哦。
m大,上面我发的那个示例代码,没办法提速了么?

我看看吧。
回复

使用道具 举报

14414#
发表于 2019-10-19 22:22:04 | 只看该作者
本帖最后由 slore 于 2019-10-19 22:23 编辑

SHEL命令可否按 用户会话 来区分。现在如果多用户登录(Administrator, SYSTEM独立用户会话),
第一个用SHEL命令可以,
另一个会话的SHEL就不起作用了。

-sys和 -user 组合了也没成功。


目前用EXEC代替吧,没有进程监护和关机函数钩子。

点评

切换前LOAD SU.IN,切换后LOAD ADMIN.INI 在SU.INI里先杀一次进程 TEAM KILL -explorer explorer.exe| KILL -explorer explorer.exe 然后在ADMIN.INI里 延时等待explorer.exe进程出现,再判断是PECMD.EXE MAIN加  详情 回复 发表于 2019-10-20 01:13
回复

使用道具 举报

14415#
发表于 2019-10-20 01:13:49 | 只看该作者
slore 发表于 2019-10-19 22:22
SHEL命令可否按 用户会话 来区分。现在如果多用户登录(Administrator, SYSTEM独立用户会话),
第一个用SHE ...

切换前LOAD SU.IN,切换后LOAD ADMIN.INI
在SU.INI里先杀一次进程
TEAM KILL -explorer explorer.exe| KILL -explorer explorer.exe
然后在ADMIN.INI里
延时等待explorer.exe进程出现,再判断是PECMD.EXE MAIN加载的explorer.exe进程再杀一次,好像这样就行了。

点评

我知道现在的用户切换脚本是这样。我的PE是Admin和SYSTEM用户独立,各自是自己的用户会话,切换时,原本打开的程序,窗口都保留,不应该kill的。不然切换回来,还得重启explorer.exe。 你正常系统,用户1和用户2  详情 回复 发表于 2019-10-20 07:16
回复

使用道具 举报

14416#
发表于 2019-10-20 07:16:03 | 只看该作者
红毛樱木 发表于 2019-10-20 01:13
切换前LOAD SU.IN,切换后LOAD ADMIN.INI
在SU.INI里先杀一次进程
TEAM KILL -explorer explorer.exe|  ...

我知道现在的用户切换脚本是这样。我的PE是Admin和SYSTEM用户独立,各自是自己的用户会话,切换时,原本打开的程序,窗口都保留,不应该kill的。不然切换回来,还得重启explorer.exe。

你正常系统,用户1和用户2切换,都是各用户独自的explorer.exe。
PE的话,想要监护,和开始菜单关机有效需要用SHEL命令,但是现在好像是全机器的进程检查,不是按用户会话检查。

点评

现在的 PE支持 两个 用户同时登陆吗? 两个不同用户的explorer.exe 进程 能不互相干扰码?  详情 回复 发表于 2019-10-20 11:04
后台开个进程监控explorer.exe进程, 监控当前用户是否运行了explorer.exe进程,如果没有就exe --hook explorer.exe 不知道这样能不能满足你的需求  详情 回复 发表于 2019-10-20 10:00
回复

使用道具 举报

14417#
发表于 2019-10-20 10:00:16 来自手机 | 只看该作者
slore 发表于 2019-10-20 07:16
我知道现在的用户切换脚本是这样。我的PE是Admin和SYSTEM用户独立,各自是自己的用户会话,切换时,原本 ...

后台开个进程监控explorer.exe进程,
监控当前用户是否运行了explorer.exe进程,如果没有就exe --hook explorer.exe

不知道这样能不能满足你的需求

点评

好的,试试看。  发表于 2019-10-20 10:08
回复

使用道具 举报

14418#
 楼主| 发表于 2019-10-20 11:04:05 | 只看该作者
slore 发表于 2019-10-20 07:16
我知道现在的用户切换脚本是这样。我的PE是Admin和SYSTEM用户独立,各自是自己的用户会话,切换时,原本 ...


现在的 PE支持 两个 用户同时登陆吗?
两个不同用户的explorer.exe 进程 , 能不互相干扰码?

点评

老版本Win10PE可以,没人做。 新版本稍微需要处理一个系统服务就行了。 有Gif动态图演示,现在用的EXEC,不结束explorer.exe就都好好的,但是很多刷新脚本kill explorer,还得改脚本重启。 用18995之前的版本  详情 回复 发表于 2019-10-20 11:40
回复

使用道具 举报

14419#
发表于 2019-10-20 11:40:14 | 只看该作者
本帖最后由 slore 于 2019-10-20 11:43 编辑
mdyblog 发表于 2019-10-20 11:04
现在的 PE支持 两个 用户同时登陆吗?
两个不同用户的explorer.exe 进程 , 能不互相干扰码?


老版本Win10PE可以,没人做。
新版本稍微需要处理一个系统服务就行了。

有Gif动态图演示,现在用的EXEC,不结束explorer.exe就都好好的,但是很多刷新脚本kill explorer,还得改脚本重启。

用18995之前的任何Windows 10版本(专业版),【补丁】界面,选【账户】,启用Administrator 选项,构建就可以了。
各自的快捷方式,主题,任务栏风格,启动的应用程序(含explorer外壳程序),打开的文档等,都是独立用户会话下运行,而且无损秒切换。

http://bbs.wuyou.net/forum.php?m ... page=210#pid3871787
回复

使用道具 举报

14420#
发表于 2019-10-20 22:48:48 | 只看该作者
GETF -find速度测试.7z (91.91 KB, 下载次数: 9)

我把数据文件弄大了一些,速度上的差距比较明显了。M大有空的时候看一下。谢谢。
回复

使用道具 举报

14421#
发表于 2019-10-23 18:50:12 | 只看该作者
628        27.526757451016        {IFEX [ Z:\USM_TOOL\03DRV.INI | Z:\USM_TOOL\03DRV\ ],!}
628        28.482155972337        [IFEX [ Z:\USM_TOOL\03DRV.INI | Z:\USM_TOOL\03DRV\ ],!]        <0>        :操作成功完成。



日志这样记录的,是不是这条命令执行了快一秒钟啊?

点评

对。 是不是 多进程、多线程?  详情 回复 发表于 2019-10-24 06:33
回复

使用道具 举报

14422#
 楼主| 发表于 2019-10-24 06:33:21 | 只看该作者
红毛樱木 发表于 2019-10-23 18:50
628        27.526757451016        {IFEX [ Z:%uSM_TOOL\03DRV.INI | Z:%uSM_TOOL\03DRV\ ],!}
628        28.482155972337        ,!] ...

对。
是不是 多进程、多线程?

点评

M大出山了,可喜可贺. 请教几个问题: 1. moun-udm listudm -ret:&V \\.\physicaldrive0 如何使用SED命令替换除盘符(C:,D:)外的字符为空格,能否用一句SED命令实现?(需要写很多脚本我自己琢磨吧)  详情 回复 发表于 2019-10-24 09:42
整个ini是的。 不过这里前后代码都是单的,有点奇怪。 我再研究研究  详情 回复 发表于 2019-10-24 07:14
回复

使用道具 举报

14423#
发表于 2019-10-24 07:14:19 来自手机 | 只看该作者
mdyblog 发表于 2019-10-24 06:33
对。
是不是 多进程、多线程?

整个ini是的。
不过这里前后代码都是单的,有点奇怪。
我再研究研究
回复

使用道具 举报

14424#
发表于 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
回复

使用道具 举报

14425#
发表于 2019-10-24 10:26:04 | 只看该作者
datbik189 发表于 2019-10-24 09:42
M大出山了,可喜可贺.

请教几个问题:

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

   envi^ envimode=1
   call 123

    _sub 123
   set &V=123
   set-copy &V=&a
   mess. %&V% //以为&V的变量返回空值,结果返回123
   _end
-----------------------------------------
这里的&a还不是pecmd变量,要先申明一下才可以。()

   envi^ envimode=1
   call 123

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

点评

谢谢. 不过个人觉得应该是返回空值比较合理一些,不然觉得麻烦:得先确定&a存不存在,才能用set-copy. 用set &V=%&a%方便,但是当&a的字节数为单数时, &V的字节数就会变成双数(尾部多了个 0x00)  详情 回复 发表于 2019-10-24 10:49
回复

使用道具 举报

14426#
发表于 2019-10-24 10:28:59 | 只看该作者
本帖最后由 红毛樱木 于 2019-10-24 10:30 编辑
datbik189 发表于 2019-10-24 09:42
M大出山了,可喜可贺.

请教几个问题:

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

  _sub 123
  set-ret100 &V=123
  _end



---------------------------------------
找不到100级吧,这里。
  envi^ envimode=1
call bbb
  mess. %&V% //运行不了
  _sub bbb
  call 123
  _end

  _sub 123
  set-ret2 &V=123
  _end
---------------------------------

或者你需要全局变量,可以用set ::V=

  envi^ envimode=1
  call 123
  mess. %&::V% //运行不了

  _sub 123
  set ::V=123
  _end

点评

是的,100级只不过是夸张的演示. 当级别数错时,就玩了,脚本运行不下去了. 用你的全局PE变量办法不错.  详情 回复 发表于 2019-10-24 10:52
回复

使用道具 举报

14427#
发表于 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
回复

使用道具 举报

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

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

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

使用道具 举报

14429#
发表于 2019-10-24 11:09:53 | 只看该作者
datbik189 发表于 2019-10-24 10:49
谢谢.

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

  envi^ envimode=1
   call 123

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

这样应该能看得清一些吧
回复

使用道具 举报

14430#
发表于 2019-10-24 11:21:45 | 只看该作者
本帖最后由 红毛樱木 于 2019-10-24 11:23 编辑

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

线程里这种ENVI-ret  我用的比较多,好像不对,是变量不能这样用么?M大

-------------------------------------------------------
ENVI &a=1
CALL BBB
MESS. <%&a%><%&b%>
_SUB BBB
TEAM ENVI &&a=2| ENVI-ret &a=%&&a%| ENVI-ret &b=%&&a%
_END

不用线程,又对了

点评

ENVI &a=1 THREAD* -WAIT -HERE TEAM ENVI &&a=2| ENVI-ret &a=%&&a%| ENVI-ret &b=%&&a% MESS. //返回  详情 回复 发表于 2019-10-24 11:33
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-12-25 03:19

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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