无忧启动论坛

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

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

    [复制链接]
10651#
 楼主| 发表于 2015-8-30 18:11:26 | 只看该作者
hhh333 发表于 2015-8-30 18:09
既然tag是早期版本,那tag+的功能就莫加了或者转到checkfile上。我还是转用checkfile参数。为了兼容不取 ...

不折腾了。
回复

使用道具 举报

10652#
 楼主| 发表于 2015-8-31 09:36:36 | 只看该作者
本帖最后由 mdyblog 于 2015-8-31 09:39 编辑

PECMD 需要支持直接操作 高端隐藏的文件吗?
比如:
FILE   .\MYDIR=>(pt:1#2)/DIR1

目前,用已有的技术,也可以做到。
RAMD Imdisk*扇区映射  或  SHOW(普通分区)
后再操作,完毕撤销。  
回复

使用道具 举报

10653#
发表于 2015-8-31 14:55:00 | 只看该作者
本帖最后由 ling3882688 于 2015-8-31 14:57 编辑

M大,下面的代码我一运行就会多出一个PECMD进程,并且无法执行到MESS,帮忙看看是啥问题,是不能这么调用吗?但是我必须要把ListPPt 1 &&Fppts这句放到子过程里。

_SUB ListPPt
        ENVI^ FORCELOCAL=1
        SET &hd=%~1
        CALC #hd=%hd%
        PART list part %hd%,&&pts
        SET &nall=0
        SET &nmain=0
        FORX * %pts%,&&pt,
        {
            LSTR &&c0=1,%pt%
            FIND $%c0%=@, EXIT -
            TEAM  PART -phy# list part %hd%:%pt%,&&v1| MSTR &&ltp,&&ppt=<2><8>%v1%
            IFEX $%ltp%<1, EXIT -
            CALC nall=%nall% + 1
            IFEX $%ppt%<=4,  CALC nmain=%nmain% + 1
        }
        ENVI-ret %~2=%nall%   %nmain%
_END

CALL Check

_SUB Check
ListPPt 1 &&Fppts
MESS %Fppts%
_END
回复

使用道具 举报

10654#
 楼主| 发表于 2015-8-31 16:25:53 | 只看该作者
ling3882688 发表于 2015-8-31 14:55
M大,下面的代码我一运行就会多出一个PECMD进程,并且无法执行到MESS,帮忙看看是啥问题,是不能这么调用吗 ...

我测试正常啊!
回复

使用道具 举报

10655#
发表于 2015-8-31 16:27:56 | 只看该作者
本帖最后由 ling3882688 于 2015-8-31 16:29 编辑
mdyblog 发表于 2015-8-31 16:25
我测试正常啊!


直接随便找一个版本的PECMD,把我贴的内容复制进去试试呢?
回复

使用道具 举报

10656#
 楼主| 发表于 2015-8-31 16:33:10 | 只看该作者
ling3882688 发表于 2015-8-31 16:27
直接随便找一个版本的PECMD,把我贴的内容复制进去试试呢?

正常:
回复

使用道具 举报

10657#
发表于 2015-8-31 16:35:40 | 只看该作者

稍等,我换个电脑试试哈!
回复

使用道具 举报

10658#
发表于 2015-8-31 16:38:11 | 只看该作者

我换了个电脑,新装的系统,还是一样无法正常运行。
回复

使用道具 举报

10659#
发表于 2015-8-31 16:44:27 | 只看该作者

M大,可不可以这样,我找个机器全新的系统,装好Teamview把ID和密码发给你,你远程看看?
回复

使用道具 举报

10660#
 楼主| 发表于 2015-8-31 16:55:51 | 只看该作者
本帖最后由 mdyblog 于 2015-8-31 16:56 编辑
ling3882688 发表于 2015-8-31 16:38
我换了个电脑,新装的系统,还是一样无法正常运行。


哪有那么复杂:
  1. LOGS **2 * X.LOG

  2. _SUB ListPPt
  3.         ENVI^ FORCELOCAL=1
  4.         SET &hd=%~1
  5.         CALC #hd=%hd%
  6.         PART list part %hd%,&&pts
  7.         SET &nall=0
  8.         SET &nmain=0
  9.         FORX * %pts%,&&pt,
  10.         {
  11.             LSTR &&c0=1,%pt%
  12.             FIND $%c0%=@, EXIT -
  13.             TEAM  PART -phy# list part %hd%:%pt%,&&v1| MSTR &&ltp,&&ppt=<2><8>%v1%
  14.             IFEX $%ltp%<1, EXIT -
  15.             CALC nall=%nall% + 1
  16.             IFEX $%ppt%<=4,  CALC nmain=%nmain% + 1
  17.         }
  18.         ENVI-ret %~2=%nall%   %nmain%
  19. _END

  20. CALL Check

  21. _SUB Check
  22. ListPPt 1 &&Fppts
  23. MESS %Fppts%@DEBUG
  24. _END
复制代码

保存为A.WCS
PECMD LOAD A.WCS

再把 X.LOG 传上来就可以了。
回复

使用道具 举报

10661#
发表于 2015-8-31 17:03:00 | 只看该作者
本帖最后由 ling3882688 于 2015-8-31 17:05 编辑
mdyblog 发表于 2015-8-31 16:55
哪有那么复杂:

保存为A.WCS


1        [LOGS **2 * X.LOG]        <0>        :操作成功完成。
22        {CALL Check}
25        {ListPPt 1 &&Fppts}

好奇怪,直接拖到PECMD上可以执行,但是拖到代码窗口再点执行就不行。

回复

使用道具 举报

10662#
发表于 2015-8-31 17:15:26 | 只看该作者
本帖最后由 ling3882688 于 2015-8-31 17:24 编辑
mdyblog 发表于 2015-8-31 16:55
哪有那么复杂:

保存为A.WCS


这个是你给的那个代码的测试过程。上传我用的PECMD. PECMD.rar (784.71 KB, 下载次数: 8)
回复

使用道具 举报

10663#
 楼主| 发表于 2015-8-31 19:33:15 | 只看该作者
ling3882688 发表于 2015-8-31 17:15
这个是你给的那个代码的测试过程。上传我用的PECMD.

把X.LOG传过来。
回复

使用道具 举报

10664#
发表于 2015-9-1 00:04:31 来自手机 | 只看该作者
mdyblog 发表于 2015-8-31 19:33
把X.LOG传过来。

内容GIF里有显示,内容如下:
1        [LOGS **2 * X.LOG]        <0>        :操作成功完成。
22        {CALL Check}
25        {ListPPt 1 &&Fppts}
回复

使用道具 举报

10665#
 楼主| 发表于 2015-9-1 04:33:14 | 只看该作者
本帖最后由 mdyblog 于 2015-9-1 10:24 编辑
ling3882688 发表于 2015-9-1 00:04
内容GIF里有显示,内容如下:
1        [LOGS **2 * X.LOG]                :操作成功完成。
22        ...


解开双击 测试.cmd
把X.LOG传过来。

测试.rar

749.71 KB, 下载次数: 5

回复

使用道具 举报

10666#
发表于 2015-9-1 10:02:28 | 只看该作者
本帖最后由 ling3882688 于 2015-9-1 10:20 编辑
mdyblog 发表于 2015-9-1 04:33
解开双击 测试.cmd
把X.LOG传过来。


不明白,什么 测试.cmd? 我也测试了最新版本的PECMD,都是这样。真的很奇怪,只要是放到PECMD帮助界面上点执行就不行。
两个log.rar (974 Bytes, 下载次数: 2)
回复

使用道具 举报

10667#
 楼主| 发表于 2015-9-1 10:25:00 | 只看该作者
ling3882688 发表于 2015-9-1 10:02
不明白,什么 测试.cmd? 我也测试了最新版本的PECMD,都是这样。真的很奇怪,只要是放到PECMD帮助界面 ...

附件 忘了 传。
下来附件吧。
回复

使用道具 举报

10668#
 楼主| 发表于 2015-9-1 10:26:20 | 只看该作者
ling3882688 发表于 2015-9-1 10:02
不明白,什么 测试.cmd? 我也测试了最新版本的PECMD,都是这样。真的很奇怪,只要是放到PECMD帮助界面 ...


1:
ListPPt 1 &&Fppts
改成 CALL  ListPPt 1 &&Fppts
试试。


2:就按成功执行,的那样 执行贝。

点评

解决方法1:CALL我也试过不行的。 解决方法2:貌似不像M大的风格,这还是比较严重的问题,要是仅仅这一个也就算了,是所有这种调用都不行。  详情 回复 发表于 2015-9-1 10:33
回复

使用道具 举报

10669#
发表于 2015-9-1 10:33:17 | 只看该作者
本帖最后由 ling3882688 于 2015-9-1 10:34 编辑
mdyblog 发表于 2015-9-1 10:26
1:
ListPPt 1 &&Fppts
改成 CALL  ListPPt 1 &&Fppts


解决方法1:CALL我也试过不行的。

解决方法2:貌似不像M大的风格,这还是比较严重的问题,要是仅仅这一个也就算了,是所有这种调用都不行。我只是挑了一个过程演示。

测试.cmd能传一下吗?

点评

解决方法2:貌似不像M大的风格,这还是比较严重的问题,要是仅仅这一个也就算了,是所有这种调用都不行。我只是挑了一个过程演示。 --------------- 说说, 两次执行的区别?  详情 回复 发表于 2015-9-1 10:38
#11200楼  详情 回复 发表于 2015-9-1 10:37
回复

使用道具 举报

10670#
 楼主| 发表于 2015-9-1 10:37:06 | 只看该作者
ling3882688 发表于 2015-9-1 10:33
解决方法1:CALL我也试过不行的。

解决方法2:貌似不像M大的风格,这还是比较严重的问题,要是仅仅 ...

#11200楼
回复

使用道具 举报

10671#
 楼主| 发表于 2015-9-1 10:38:20 | 只看该作者
本帖最后由 mdyblog 于 2015-9-1 10:41 编辑
ling3882688 发表于 2015-9-1 10:33
解决方法1:CALL我也试过不行的。

解决方法2:貌似不像M大的风格,这还是比较严重的问题,要是仅仅 ...


解决方法2:貌似不像M大的风格,这还是比较严重的问题,要是仅仅这一个也就算了,是所有这种调用都不行。我只是挑了一个过程演示。
---------------
说说, 两次执行的区别?
还有, 你是什么语言环境?

加个#code=936T950
测试.zip (757.57 KB, 下载次数: 7)

点评

再举个例子: _SUB CheckHybridMBR SET &hd=%~2 CALC -err=-1 &hd=%&hd% SET &ret=INVALID SET $%&hd%>=0, { SET ret=NO //PART -iv=10 LIST DISK %&hd%,&&MBR //新版才可以  详情 回复 发表于 2015-9-1 10:57
如果这样是可以执行到mess的 [attachimg]226539[/attachimg]  详情 回复 发表于 2015-9-1 10:51
我是Win7 SP1 x64旗舰版,简体中文。昨天我另找了一台机器全新安装的win7 x86也试了都不行。 你发的两个测试都没问题,区别就是只要不把代码放到PECMD帮助界面那里点执行都可以成功直行。  详情 回复 发表于 2015-9-1 10:45
回复

使用道具 举报

10672#
发表于 2015-9-1 10:45:22 | 只看该作者
本帖最后由 ling3882688 于 2015-9-1 10:49 编辑
mdyblog 发表于 2015-9-1 10:38
解决方法2:貌似不像M大的风格,这还是比较严重的问题,要是仅仅这一个也就算了,是所有这种调用都不行 ...


我是Win7 SP1 x64 MSDN旗舰版,简体中文。昨天我另找了一台机器全新安装的win7 x86也试了都不行。
你发的两个测试都没问题。成功和失败区别就是只要不把代码放到PECMD帮助界面那里点执行都可以成功执行。
下面是失败的时候的log,执行之后会多出一个PECMD进程并且不会继续执行后面的MESS:
1        [LOGS **2 * X.LOG]        <0>        :操作成功完成。
22        {CALL Check}
25        {CALL  ListPPt 0 &&Fppts}

点评

你运行 PECMDX86 还是 PECMDX64 ?  详情 回复 发表于 2015-9-1 11:17
这么说, 这个不是关键。这不是正常运行。 正常运行 能 正常, 就没问题。[/backcolor] 你说的这个情况, 有空再看看。  详情 回复 发表于 2015-9-1 11:11
回复

使用道具 举报

10673#
发表于 2015-9-1 10:51:55 | 只看该作者
本帖最后由 ling3882688 于 2015-9-1 10:54 编辑
mdyblog 发表于 2015-9-1 10:38
解决方法2:貌似不像M大的风格,这还是比较严重的问题,要是仅仅这一个也就算了,是所有这种调用都不行 ...


如果这样是可以执行到mess的,那是不是说就是卡在_SUB ListPPt过程里?不过这个过程换成别的也一样不行。

点评

奇怪, 我早WIN7X64 上 PECMDX86 PECMDX64 炸药那个在帮助界面下运行输入框,都正常 XP下正常。  详情 回复 发表于 2015-9-1 11:23
回复

使用道具 举报

10674#
发表于 2015-9-1 10:57:50 | 只看该作者
本帖最后由 ling3882688 于 2015-9-1 10:59 编辑
mdyblog 发表于 2015-9-1 10:38
解决方法2:貌似不像M大的风格,这还是比较严重的问题,要是仅仅这一个也就算了,是所有这种调用都不行 ...


再举个例子:
_SUB CheckHybridMBR
    SET &hd=%~2
    CALC -err=-1 &hd=%&hd%
    SET &ret=INVALID
    SET $%&hd%>=0,
    {   SET ret=NO
        //PART -iv=10 LIST DISK %&hd%,&&MBR  //新版才可以简化写
        PART  LIST DISK %&hd%,&&V
        MSTR &&MBR=<10>%&V%
        SET ret=%&MBR%
        FIND $%&MBR%=MBR,
        {   SET &nm=\\.\PhysicalDrive%&hd%
            TEAM GETF %nm%,0x1C2#1,&&V| FIND $%&V%=0xEE, SET  ret=HMBR
        }
    }
    ENVI-ret %1=%&ret%
_END

//TEAM CheckHybridMBR  &&MBR  0|FIND $%&MBR%=HMBR,MESS 1111!MESS 2222
CALL Check

_SUB Check
TEAM CheckHybridMBR  &&MBR  0|FIND $%&MBR%=HMBR,MESS 1111!MESS 2222
_END

只要不放进子过程里都可以成功执行,放进去就白搭了。这些过程里有什么相似的代码导致这样的问题吗?
我再说一下问题出现的具体过程,打开PECMD,然后把代码复制进去点执行。
回复

使用道具 举报

10675#
 楼主| 发表于 2015-9-1 11:11:47 | 只看该作者
ling3882688 发表于 2015-9-1 10:45
我是Win7 SP1 x64 MSDN旗舰版,简体中文。昨天我另找了一台机器全新安装的win7 x86也试了都不行。
你 ...

这么说, 这个不是关键。这不是正常运行。
正常运行 能 正常, 就没问题。

你说的这个情况, 有空再看看。
回复

使用道具 举报

10676#
 楼主| 发表于 2015-9-1 11:17:55 | 只看该作者
ling3882688 发表于 2015-9-1 10:45
我是Win7 SP1 x64 MSDN旗舰版,简体中文。昨天我另找了一台机器全新安装的win7 x86也试了都不行。
你 ...

你运行  PECMDX86 还是 PECMDX64 ?

点评

x86 x64都试过。  详情 回复 发表于 2015-9-1 12:46
回复

使用道具 举报

10677#
 楼主| 发表于 2015-9-1 11:23:53 | 只看该作者
ling3882688 发表于 2015-9-1 10:51
如果这样是可以执行到mess的,那是不是说就是卡在_SUB ListPPt过程里?不过这个过程换成别的也一样不行 ...


奇怪, 我早WIN7X64 上 PECMDX86 PECMDX64 这样在帮助界面输入框运行,都正常
XP下正常。

点评

再来个更极端的: _SUB MySUB1 MESS 11111 _END CALL MySUB2 _SUB MySUB2 CALL MySUB1 MESS 22222 _END  详情 回复 发表于 2015-9-1 14:00
XP我刚刚也试了,下面的代码也不行。 _SUB CheckHybridMBR SET &hd=%~2 CALC -err=-1 &hd=%&hd% SET &ret=INVALID SET $%&hd%>=0, { SET ret=NO //PART -iv=10 LIST DISK %  详情 回复 发表于 2015-9-1 13:32
回复

使用道具 举报

10678#
发表于 2015-9-1 12:46:12 | 只看该作者
mdyblog 发表于 2015-9-1 11:17
你运行  PECMDX86 还是 PECMDX64 ?

x86 x64都试过。
回复

使用道具 举报

10679#
发表于 2015-9-1 13:32:54 | 只看该作者
本帖最后由 ling3882688 于 2015-9-1 13:38 编辑
mdyblog 发表于 2015-9-1 11:23
奇怪, 我早WIN7X64 上 PECMDX86 PECMDX64 这样在帮助界面输入框运行,都正常
XP下正常。


XP我刚刚也试了,下面的代码也不行。

_SUB CheckHybridMBR
    SET &hd=%~2
    CALC -err=-1 &hd=%&hd%
    SET &ret=INVALID
    SET $%&hd%>=0,
    {   SET ret=NO
        //PART -iv=10 LIST DISK %&hd%,&&MBR  //新版才可以简化写
        PART  LIST DISK %&hd%,&&V
        MSTR &&MBR=<10>%&V%
        SET ret=%&MBR%
        FIND $%&MBR%=MBR,
        {   SET &nm=\\.\PhysicalDrive%&hd%
            TEAM GETF %nm%,0x1C2#1,&&V| FIND $%&V%=0xEE, SET  ret=HMBR
        }
    }
    ENVI-ret %1=%&ret%
_END


TEAM CheckHybridMBR  &&MBR  0|FIND $%&MBR%=HMBR,MESS 1111!MESS 2222
//按理说先执行上面这句才执行CALL Check,但是只有把CALL Check注释掉上一句的MESS才可以正常显示。到底是咋回事,整疯了!
//如果在这里加一句 WAIT 1 那么上一句的mess能正常显示,但是子过程Check里的mess还是不显示。
CALL Check

_SUB Check
TEAM CheckHybridMBR  &&MBR  0|FIND $%&MBR%=HMBR,MESS 1111!MESS 2222
_END

点评

CheckHybridMBR 你面到底是那句的问题? 你试着注释一些语句,就能定位那句的原因。  详情 回复 发表于 2015-9-1 13:38
回复

使用道具 举报

10680#
 楼主| 发表于 2015-9-1 13:38:22 | 只看该作者
本帖最后由 mdyblog 于 2015-9-1 13:40 编辑
ling3882688 发表于 2015-9-1 13:32
XP我刚刚也试了,下面的代码也不行。

_SUB CheckHybridMBR


1:
CheckHybridMBR
你面到底是那句的问题?
你试着注释一些语句,就能定位那句的原因。


2:
也可能是 运行方式不同造成。 这种方式,不是用文件,用的共享内存传递数据, 派生一个子进程来运行的。

点评

精简到这种程度也无法出现MESS窗口了。 _SUB CheckHybridMBR _END CALL Check _SUB Check CheckHybridMBR &&MBR 0 MESS 1111 _END  详情 回复 发表于 2015-9-1 13:58
这是多出来的进程 [attachimg]226557[/attachimg]  详情 回复 发表于 2015-9-1 13:42
如果在CALL Check上一行加一句 WAIT 1 那么上一句的mess能正常显示,但是子过程Check里的mess还是不显示。  详情 回复 发表于 2015-9-1 13:39
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-12-24 13:23

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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