无忧启动论坛

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

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

    [复制链接]
271#
 楼主| 发表于 2012-2-24 17:18:38 | 显示全部楼层

[更新186#539]PECMD-32.2012.1除夕版.多窗口多线-U53裸机系统+18M酷MiniPE

[更新186#539]PECMD-32.2012.1除夕版.多窗口多线-U53裸机系统+18M酷MiniPE


PECMD-32.2012.1除夕版.多窗口多线-U53(已升级) +裸机系统 抢鲜版 + 18M-COOL  MiniPE(已升级)
***已通过启动PE测试***
下载: http://mdyblog.blog.163.com/blog/static/106150119201202591855298/

186#539楼 U52  FIXED: HIVE -super_r
回复

使用道具 举报

272#
 楼主| 发表于 2012-2-24 17:25:57 | 显示全部楼层
原帖由 lmle 于 2012-2-24 14:33 发表

U52的HIVE加不加-super_r测试时我没有发现不同,还是没有解决子孙项的继承问题。
测试前已经用regedit删除SAM项的权限继承。
测试命令:HIVE -super_r aaa,F:\windows\system32\config\SAM
1、运行上面的命 ...


谢谢你提供的代码。
U53好了。
1。
PECMD>pecmddbg HIVE    _SAM_,D:\SAM




PECMD>pecmddbg HIVE -super_r    _SAM_,D:\SAM
有了!!!
回复

使用道具 举报

273#
 楼主| 发表于 2012-2-24 20:21:16 | 显示全部楼层
原帖由 yj0176 于 2012-2-24 17:37 发表
楼主太强了。。。。。


谢谢!
                        
回复

使用道具 举报

274#
 楼主| 发表于 2012-2-24 22:28:19 | 显示全部楼层

回复 #1 2012abc19701 的帖子

[更新187#544]PECMD-32.2012.1除夕版.多窗口多线-U54裸机系统+18M酷MiniPE


PECMD-32.2012.1除夕版.多窗口多线-U54(已升级) +裸机系统 抢鲜版 + 18M-COOL  MiniPE(已升级)
***已通过启动PE测试***
下载: http://mdyblog.blog.163.com/blog/static/106150119201202591855298/


187#544楼 U54  GETF -g=列数      DEVI 直接安装INF文件

为方便, GETF  支持列数指定 -g=列数。
ENVI  DISK=\\.\PhysicalDrive0
GETF -g=16 %DISK%,0#512,ORG
MESS  %ORG%
//16行 16列


DEVI 直接安装INF文件
回复

使用道具 举报

275#
 楼主| 发表于 2012-2-24 22:31:50 | 显示全部楼层
原帖由 dvd008 于 2012-2-24 17:51 发表
U53
part /mbr  
part /mbr  0
还是无效


U54应该可以。

我写了个WCS程序,显示
PART /MBR
PART /MBT=nt6
结果相同。

TESTMBR.wcs:
ENVI  DISK=\\.\PhysicalDrive0
GETF -g=16 %DISK%,0#512,ORG
FIND ORG.MBR,!  PUTF* ORG.MBR,0,%ORG%   //备份MBR
MESS- %ORG% @ORG  #OK

ENVI= ZERO=*440 0x00
//MESS- %ZERO%
PUTF* %DISK%,0,%ZERO%
GETF -g=16 %DISK%,0#440,DATA1
FIND $%ZERO%= %DATA1%,  MESS-  ZERO1 [email=OK.@#OK]OK.@#OK[/email]
PART /MBR  // ----------------------------------1111111111
GETF -g=16 %DISK%,0#440,&MBR_RESULT
MESS- %&MBR_RESULT% @MBR_RESULT  #OK

PUTF* %DISK%,0,%ZERO%
GETF -g=16 %DISK%,0#440,DATA2
FIND $%ZERO%= %DATA2%,  MESS-  ZERO2 [email=OK.@#OK]OK.@#OK[/email]

PART /MBR=nt6     // ----------------------------------22222222222
GETF -g=16 %DISK%,0#440,&MBR_NT6_RESULT
MESS- %&MBR_NT6_RESULT% @MBR_NT6_RESULT  #OK
GETF -g=16 ORG.MBR,0#440,ORG
PUTF* %DISK%,0,%ORG%  //恢复MBR
ENVI OK=不相同
FIND $%&MBR_RESULT%=%&MBR_NT6_RESULT%, ENVI OK=相同
MESS-   /MBR   与   /MBR=nt6  %OK%  @相同吗?#OK!
MESS %ORG% @恢复  #OK


回复

使用道具 举报

276#
 楼主| 发表于 2012-2-24 22:36:24 | 显示全部楼层
原帖由 2010rt 于 2012-2-23 07:38 发表
这个PECMD.INI文件在新版上怎么更改,我换了新版的装不上驱动,不过在新版上好像比老9的占用内存要小,请zL帮帮修改下


PECMD2012-U54  支持 INF驱动直接安装。
回复

使用道具 举报

277#
 楼主| 发表于 2012-2-25 08:16:29 | 显示全部楼层
原帖由 lmle 于 2012-2-25 07:53 发表
Hive添加Everyone权限完美了!
楼主的编程水平、对PECMD开发的投入、对问题的处理速度绝对一流,佩服,赞叹。


谢谢!!
                     
回复

使用道具 举报

278#
 楼主| 发表于 2012-2-25 10:23:15 | 显示全部楼层

回复 #548 2010rt 的帖子

InstallINFDrv.wcs:
#!PECMD
ENVI &&&EnviMode=1  //避免意外错误,空变量,外部变量,
ENVI &FORCELOCAL=1  //可以处理大变量. 不影响外部变量
ENVI TITLE=Install of Drivers in PE3 (tanks wimb)- Wait ....

ENVI MSG=\n  搜索并安装主机驱动库中的驱动\n   

_SUB  MyWindow, W500H600,%TITLE%
    MEMO _MSG,  L20T20W450H420,%MSG%,
    ITEM ,  L200T500W100H20,关闭, KILL  \
    ENVI @MyWindow.Visable=1   //提前显示
    //DEVI  D:\WIN_x86\wimfltr.inf  //测试

    FORX * C D E F G H I J K L M N,i,
    {
        ENVI @_MSG=%_MSG%\n搜索 %i%:
        IFEX  %i%:\Windows\SysWow64,!
        {
            IFEX %i%:\Windows\system32\driverstore\filerepository,
            {
                ENVI @_MSG=%_MSG%\n  找到的驱动库: %i%:\Windows\system32\driverstore\filerepository
                //WAIT 1000 //演示,正常为下一行
                devi %i%:\Windows\system32\driverstore\filerepository\*inf
            }
        }
    }
    ENVI MSG1=  正在搜索主机驱动 - 请稍候 .... \n\n  某些 USB 3.0 设备可能需要运行两次才能安装上\n\n完毕\n
    //ENVI MSG1=%MSG1%\n  *** 请不要关闭本窗口,安装后会自动关闭 ***\n
    ENVI @_MSG=%_MSG%\n%MSG1%
    //CALL pe3ext
    // KILL \    //自动关闭
_END

CALL MyWindow

//:: pause
EXIT FILE
//EXIT FILE, 后面不执行!!!

/////////////////////////////////////创建本文件夹快捷方式链接//////////////////////////////////////////////////
_SUB pe3ext
     TEAM DEVI $.\网络工具\DRV3\WNIC.CAB,,%TEMP%|FILE %TEMP%        //自动安装外置网卡驱动
     TEAM DEVI $.\网络工具\DRV3\VCARD.CAB,,%TEMP%|FILE %TEMP%              //自动安装显卡驱动
     TEAM DEVI $.\网络工具\DRV3\ACARD.CAB,,%TEMP%|FILE %TEMP%              //自动安装声卡驱动
_END
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
//CALL pe3ext                                                 //执行 pe3ext 内容
///////////////////////////////////////////////////////////////////////////////////////////////////////////////



2。 设置TEMP
ENVI TEMP=D:\TEMP
也可 TEMP Setting   //图形选择界面。
见 HELP ENVI
    HELP TEMP

///
回复

使用道具 举报

279#
 楼主| 发表于 2012-2-25 17:03:57 | 显示全部楼层
原帖由 lmle 于 2012-2-25 14:18 发表
楼主的PECMD在速度方面还有没有优化的可能?
1、同样的命令,用老九的PECMD和你的这个,老九的出现用户界面要快一点。或许是你的这个PECMD功能更多、更强大有关系。
2、HIVE命令挂载注册表,明显比reg load慢 ...


A1: 界面
   1.可以 用 编辑内置资源.WCS  将PECMD.EXE 解开。 可以快一点点。
   2. 在 Window 函数中,开始加 ENVI   @窗口名.Visable=1
可以让界面早点出来。
   3. ENVI &&&EnviMode=1  
      可以 快点。 否则,既要兼容PECMD3.9 ,  又要照顾新的语法, 一条命令要解释几次。 不兼容变量(实际很少用到嵌套变量)使用,可以轻装上阵。


A2:
  比reg load慢 , 是因为多干了活。 可以考虑加-quick 开关, 快点。
  同上, 可以 用 编辑内置资源.WCS  将PECMD.EXE 解开。 可以快一点点。

[ 本帖最后由 2012abc19701 于 2012-2-26 08:58 编辑 ]
回复

使用道具 举报

280#
 楼主| 发表于 2012-2-25 19:00:01 | 显示全部楼层
原帖由 2012abc19701 于 2012-2-25 17:03 发表


A1: 界面
   1.可以 用 编辑内置资源.WCS  将PECMD.EXE 解开。 可以快一点点。
   2. 在 Window 函数中,开始加 ENVI   @窗口名.Visable=1
可以让节目早点出来。
   3. ENVI &&&EnviMode=1  
      可 ...


U55   HIVE -quick
回复

使用道具 举报

281#
 楼主| 发表于 2012-2-25 23:39:51 | 显示全部楼层
原帖由 lmle 于 2012-2-25 20:04 发表
关于KILL命令:
1、如下这段命令能关闭MESS的提示窗口:
_SUB AAA
    MESS- 这是提示信息AAA。@测试#ok
    WAIT 5000
_END
AAA
KILL \测试
2、下面这段命令则不能关闭:
_SUB Windows1,W300H240,窗口 ...




关于KILL命令:

2、下面这段命令则不能关闭:
_SUB Windows1,W300H240,窗口
   TIME t1,10,CALL AAA
_END
_SUB AAA
    ENVI @t1=0
    MESS- 这是提示信息AAA。@测试#ok
    WAIT 5000
_END
Windows1
MESS   --将: KILL \测试
KILL \测试

我实测,能关闭MESS的提示窗口!
注意: WAIT 5000 必须执行完,Windows1才能真正注销,从而执行KILL \测试。
5000ms 前, 在WINDOW/VC 中,不能响应消息。 这里做了特殊处理, 从视觉上能响应消息(如关闭)。
但5000ms 前, AAA不返回。 TIME t1  的响应函数 (CALL AAA) 不会返回,从而从执行流程上, 窗口不能注销。
从而不能执行 KILL \测试。




3:另:HIVE -quick速度确实快多了。我觉得HIVE默认就用-quick,特殊使用加-super_r,可以少一个参数。
为理兼容。 PECMD3.9、4.0  就是那样做的。
这样 以前的程序尽量少改变。

只是 多写一个-quick 而已。
权衡利弊, 从经济上说, 还是兼容的好。

[ 本帖最后由 2012abc19701 于 2012-2-25 23:57 编辑 ]
回复

使用道具 举报

282#
 楼主| 发表于 2012-2-26 00:37:37 | 显示全部楼层
原帖由 dvd008 于 2012-2-25 21:59 发表
这个差不多了!............
后面整理简单说明,加入文字框,就大功告成了


好啊!
项目太多。建议用 GROU 分一下组。
回复

使用道具 举报

283#
 楼主| 发表于 2012-2-26 01:12:39 | 显示全部楼层

回复 #1 2012abc19701 的帖子

[更新188#546PECMD-32.2012.1除夕版.多窗口多线-U55B裸机系统+18M酷MiniPE


PECMD-32.2012.1除夕版.多窗口多线-U55B(已升级) +裸机系统 抢鲜版 + 18M-COOL  MiniPE(已升级)
***已通过启动PE测试***
下载: http://mdyblog.blog.163.com/blog/static/106150119201202591855298/


FIX
回复

使用道具 举报

284#
 楼主| 发表于 2012-2-26 01:15:45 | 显示全部楼层
原帖由 lmle 于 2012-2-25 21:47 发表
ITEM命令的问题,测试命令如下:
_SUB Windows1,W260H100,测试窗口
    ITEM Save1,L20T20W80H24,保存到文件,CALL SaveFile,,0
    ITEM Save2,L150T20W80H24,保存到文件,CALL SaveFile,,-1
_END
Windows1 ...


U55B
                   
回复

使用道具 举报

285#
 楼主| 发表于 2012-2-26 08:55:38 | 显示全部楼层
原帖由 lmle 于 2012-2-26 06:03 发表

谢谢楼主解惑,可能是我理解错了。
应该是:窗口函数Windows1在关闭窗口之前(手动或Kill命令),是不会退出的,即便WAIT 5000时间已到。
也就是说,Windows1这句之后的“MESS   --将: KILL \测试”、“  ...


对头。
                             
回复

使用道具 举报

286#
 楼主| 发表于 2012-2-26 09:03:47 | 显示全部楼层
原帖由 2012abc19701 于 2012-2-25 17:03 发表


A1: 界面
   1.可以 用 编辑内置资源.WCS  将PECMD.EXE 解开。 可以快一点点。
   2. 在 Window 函数中,开始加 ENVI   @窗口名.Visable=1
可以让界面早点出来。
   3. ENVI &&&EnviMode=1  
      可 ...


4. ENVI &FORCELOCAL=1  //可以处理大变量. 不影响外部变量
可以快点。
否则 ,用OS环境变量(PECMD3.9/4.0)。 环境变量没有索引。 而且所有的变量名和数据混杂在一起,作为一个整体存放。
  每次修改,所有变量都要重新生成一遍。
  每次访问,都要从开头,一个一个字符地(变量名和数据)比对。 就像在记事本中查找一段文本。

访问变量%ABC% 改为%&ABC% 可以阻止在没有变量局部ABC时,在到环境变量中找ABC。

[ 本帖最后由 2012abc19701 于 2012-2-26 09:44 编辑 ]
回复

使用道具 举报

287#
 楼主| 发表于 2012-2-26 09:35:30 | 显示全部楼层

回复 #567 2012abc19701 的帖子

大家认为还有什么最需要加的功能。
回复

使用道具 举报

288#
 楼主| 发表于 2012-2-26 09:59:27 | 显示全部楼层
原帖由 dvd008 于 2012-2-26 09:25 发表
GROU 分一下组?我其实本外行,还不知道如何使用.

先把这个搞定再说. 分享是自然的了,都是楼主的PECMD+他提供的代码,我组合一下.

又加一个对其选项.(原来默认使用1024K),现在可以任意指定.


GRUP 分组,比你程序简单多了。下面示例(红色) .就是画一个框。考过来,调整一下位置和大小即可。
蓝色部分加了文字说明,对齐。


#!PECMD
ENVI &&&EnviMode=1  //避免意外错误,空变量,外部变量,
ENVI &FORCELOCAL=1  //可以处理大变量. 不影响外部变量
_SUB  EditDisk, W360H300,创建分区
      // 磁盘  1分区  激活  类型          起始            大小
      //GROU            ,L10T6W330H60, 分区   
      //GROU -center ,L10T6W330H60, 分区   
      GROU  ,L10T10W330H55,   
      LABE    ,    L20T20W30H20, 磁盘
      EDIT EDISK,  L20T40W30H20,%DISK%,
      LABE    ,    L55T20W30H20, 分区
      EDIT EPART,  L55T40W30H20,%IPART%,
      LABE    ,    L90T20W30H20, 激活
      EDIT EACKTIVE, L90T40W30H20,%ACKTIVE%,
      LABE    ,    L125T20W30H20, 类型
      EDIT ETYPE,  L125T40W30H20,%TYPE%,
      
      LABE    ,    L160T20W80H20, 起始
      EDIT ESTAR,  L160T40W80H20,%STAR%,
      
      LABE    ,    L245T20W80H20, 大小
      EDIT ELEN,   L245T40W80H20,%LEN%,
      
      MEMO MNOTE,  L20T70W180H120,%NOTE%,
      ITEM ,  L100T230W100H20,创建分区, CALL OnDoit
_END
_SUB OnDoit
  //校验参数...
  MESS  part -super -align=2m  %EDISK%#%EPART% %EACKTIVE% %ETYPE% %ESTAR% %ELEN%  @调试#OK //下面才是执行。
  //part -super -align=2m  %EDISK%#%EPART% %EACKTIVE% %ETYPE% %ESTAR% %ELEN%
_END
// 初始化 变量 DISK ...
ENVI$ &NL=0d 0a
//ENVI &NL=\n
ENVI DISK=0
ENVI IPART=1
ENVI ACKTIVE=-a
ENVI TYPE=0x06
ENVI STAR=131m
ENVI LEN=35m
ENVI NOTE=cdsacsac--------------dsacdsacdsa%&NL%cdscdsacdsa%&NL%cdsacdsacdsacdsa%&NL%cdsacdsacdsacdsa%&NL%cdsacdsacdsacdsa%&NL%cdsacdsacdsacdsa%&NL%cdsacdsacdsacdsa%&NL%cdsacdsacdsacdsa%&NL%cdsacdsacdsacdsa%&NL%
//图形界面
CALL EditDisk

回复

使用道具 举报

289#
 楼主| 发表于 2012-2-26 13:39:27 | 显示全部楼层

回复 #573 dvd008 的帖子

Q:  pecmd part -super -align=2m LIST 0#1 a 07 -131m 35m
不清楚这两个参数意思? 是自动接前面分区而不用考虑起始位置?
那么,到底起始是前面分区结尾,还是131M


A:
起始是前面分区是131M
只是,  暗示这个131M(实际不可能是这种形式,只可能为137363456=131M),137363456
来自  part  list part 的最后一个数据。
这只是一个暗示而已, 到底数据从哪来的,随便。
其影响在于 start 因对齐调整时,不会自动缩小len 的值。

比如 现在只有一个分区1
//    1  0x16   0     0   137363456    0      137363456

part list part 0#1 ,data
MSTR  lastend=%data%<7>  //获取最后的 137363456
//在后面在分一个34M分区
part -super -align=2m  0#2 a 07 -%lastend%  34m
//这样 0#2  34M, 开始于132M, 长度34M
//因为lastend=131M, 2M对齐, 于是后移1M, 不改变len,为34M。 结尾就是 132+34M;
//  结尾2M对齐, 恰好对齐,不调整;结尾就是 132+34M,  长度34M,



//如果下面, %lastend%前没有-
part -super -align=2m  0#2 a 07 %lastend%  34m
//这样 0#2  32M, 开始于32M, 长度32M
//因为lastend=131M, 2M对齐, 于是后移1M,同时len缩小1M为33M。 结尾就是 132+33M;
//  结尾2M对齐, 又缩小1M,结尾就是 132+32M,  长度32M,

[ 本帖最后由 2012abc19701 于 2012-2-26 14:18 编辑 ]
回复

使用道具 举报

290#
 楼主| 发表于 2012-2-26 13:56:31 | 显示全部楼层

回复 #575 dvd008 的帖子

补充 隐藏分区的算法


#!PECMD
//隐藏分区的算法

//    1  0x16   0     0   137363456    0      137363456
// 参数1 : 磁盘#分区号   如0#1
// 参数2 : 无或1 为隐藏,否则为反隐藏
_SUB  HIDEPART
   SET  &dev=%1
   SET  &func=%2
   FIND $%2=, SET func=1  
   PART list part %&dev% ,&data
   MSTR &type=%&data%<2>  //获取 type
   FIND $%&func%=1,   CALC  &ntype=%&type% | 0x10  //隐藏
   FIND $%&func%=1,!  CALC  &ntype=%&type% & 0xEF  //反隐藏
   PART -super %&dev%  %&ntype%  //设置新的类型
_END
//调用示例
HIDEPART  0#1        //隐藏
HIDEPART  0#1  反   //反隐藏

[ 本帖最后由 2012abc19701 于 2012-2-26 19:19 编辑 ]
回复

使用道具 举报

291#
 楼主| 发表于 2012-2-26 14:34:52 | 显示全部楼层

回复 #577 lmle 的帖子

//ANSI ==>HEX(ANSI)
CODE  *,A,*ANSI,HEX

//ANSI ==>HEX(UNICODE)
CODE  *,好,*UNICODE,HEX


//HEX(ANSI) ==> (显示样式 )
CODE  *ANSI,0x41,*,RAW

还可:
ENVI$   RAW=0x41   //HEX
ENVI%   RAW=65      //DEC


//HEX(UNICODE) ==> (显示样式 )
CODE  *UNICODE,0x41 0x00,*,RAW

// HELP CODE


[ 本帖最后由 2012abc19701 于 2012-2-27 09:04 编辑 ]
回复

使用道具 举报

292#
 楼主| 发表于 2012-2-26 14:40:23 | 显示全部楼层

回复 #577 lmle 的帖子

A:好的。 十进制、十六进制、2进制、8进制等之间的相互转换。

下次实现

[ 本帖最后由 2012abc19701 于 2012-2-26 14:42 编辑 ]
回复

使用道具 举报

293#
 楼主| 发表于 2012-2-26 14:44:27 | 显示全部楼层

回复 #579 clonecd 的帖子

好的
                            
回复

使用道具 举报

294#
 楼主| 发表于 2012-2-26 17:54:21 | 显示全部楼层

回复 #1 2012abc19701 的帖子

[更新189#581:PECMD-32.2012.1除夕版.多窗口多线-U56裸机系统+18M酷MiniPE


PECMD-32.2012.1除夕版.多窗口多线-U55B(已升级) +裸机系统 抢鲜版 + 18M-COOL  MiniPE(已升级)
***已通过启动PE测试***
下载: http://mdyblog.blog.163.com/blog/static/106150119201202591855298/

190#581楼 U56   CALC 支持2/8/10/16进制混合运算。  -base=N 可以指定输出进制。进制转换.  数据(包刮浮点数)支持TGMKS后缀。K=1024 S=512

[ 本帖最后由 2012abc19701 于 2012-2-26 18:53 编辑 ]
回复

使用道具 举报

295#
 楼主| 发表于 2012-2-26 18:03:07 | 显示全部楼层

回复 #577 lmle 的帖子

Q: 十进制、十六进制等之间的相互转换。

A: U56 的CALC  -base= 可以实现。
CALC  -base=16  A=256 + 1
CALC  -base=8   A=256 + 1
CALC  -base=2   A=256 + 1

数据(包刮浮点数)支持TGMKS后缀。K=1024 S=512

[ 本帖最后由 2012abc19701 于 2012-2-26 18:55 编辑 ]
回复

使用道具 举报

296#
 楼主| 发表于 2012-2-26 19:00:04 | 显示全部楼层
原帖由 dvd008 于 2012-2-26 18:47 发表
不知道是我使用不对,还是没理解,
我加到里面,但是没有效果.

一般只需要修改分区类型,为隐藏类型即可, 通常对应更改(0X07--0X17)这样

下面代码修改,是怎么改? 改回,有怎么改?


//隐藏分区的算法

/ ...


1:下面这段代码放到你的WCS文家开始或最后
//隐藏分区的算法
//    1  0x16   0     0   137363456    0      137363456
// 参数1 : 磁盘#分区号   如0#1
// 参数2 : 无或1 为隐藏,否则为反隐藏
_SUB  HIDEPART
   SET  &dev=%1
   SET  &func=%2
   FIND $%2=, SET func=1  
   PART list part %&dev% ,&data
   MSTR &type=%&data%<2>  //获取 type
   FIND $%&func%=1,   CALC  &ntype=%&type% | 0x10  //隐藏
   FIND $%&func%=1,!  CALC  &ntype=%&type% & 0xEF  //反隐藏
   PART -super %&dev%  %&ntype%  //设置新的类型
_END


2: 添加一个”隐藏“ 一个 ”显示“ 按钮


”隐藏“ 按钮  的命令中 CALL HIDEPART  %disk%#%PART%
”显示“ 按钮  的命令中 CALL HIDEPART  %disk%#%PART%  反
//调用示例
//HIDEPART  0#1        //隐藏
//HIDEPART  0#1  反   //反隐藏

[ 本帖最后由 2012abc19701 于 2012-2-26 19:14 编辑 ]
回复

使用道具 举报

297#
 楼主| 发表于 2012-2-26 19:27:06 | 显示全部楼层

回复 #585 dvd008 的帖子

加了 GROU  , 清爽多了。
回复

使用道具 举报

298#
 楼主| 发表于 2012-2-26 21:24:49 | 显示全部楼层
原帖由 lmle 于 2012-2-26 19:42 发表

谢谢更新。同时,580楼的回复让我了解了CODE命令的强大功能。
另:
嵌入脚本后的PECMD能不能还保留运行外部命令的能力?老九PECMD是支持的。
比如:Mypecmd是嵌入了脚本的,当没有参数运行Mypecmd时,调用 ...


1. 可以调用内部命令的内部脚本示例.WCS
#!pecmd
//可以调用内部命令的内部脚本示例
//1:调用内部命令: myapp --pecmd  命令及参数
//命令可以是本脚本的函数,窗口

//2:第一个参数不是  --pecmd 则运行脚本本身。

FIND $--pecmd=%1,
{ MSTR &cmd=%*<2->  
      //第二个参数开始全部
  %&cmd%
  EXIT FILE
}
//下面是内部脚本
MESS  ---内部脚本-------[%*] @#OK


2. 编译为:可以调用内部命令的内部脚本示例.EXE
3.运行
A>   PECMD命令:
   可以调用内部命令的内部脚本示例.EXE   --pecmd  MESS  这是PECMD内部命令 @hhhh#YN *5000 $Y
   可以调用内部命令的内部脚本示例.EXE   --pecmd  LOAD 测试.ini           //执行“测试.ini”文件中的命令
   可以调用内部命令的内部脚本示例.EXE   --pecmd  MESS 测试@cs#ok    //运行“MESS 测试@cs#ok”

B>脚本
   可以调用内部命令的内部脚本示例.EXE   参数......
   可以调用内部命令的内部脚本示例.EXE

//U56B

[ 本帖最后由 2012abc19701 于 2012-2-27 10:00 编辑 ]
回复

使用道具 举报

299#
 楼主| 发表于 2012-2-26 21:44:05 | 显示全部楼层

回复 #592 2012abc19701 的帖子

可以调用内部命令的内部脚本示例2.WCS
#!pecmd
//可以调用内部命令的内部脚本示例2
//和旧的一致

//1:调用内部命令: myapp 命令及参数
//命令可以是本脚本的函数,窗口


//2:没有参数则运行脚本本身。

FIND $%#=1,!    //有参数
{ ENVI &cmd=%*
  %&cmd%
  EXIT FILE
}

//下面是内部脚本
MESS  ---内部脚本-------[%*] @#OK


// 缺陷: 执行内部脚本不能带参数!

[ 本帖最后由 2012abc19701 于 2012-2-27 00:47 编辑 ]
回复

使用道具 举报

300#
 楼主| 发表于 2012-2-27 00:43:46 | 显示全部楼层
原帖由 lmle 于 2012-2-26 22:33 发表
回复 #592 #593 2012abc19701 的帖子

原来自己用脚本就可以实现啊!学习了,谢谢。

#!pecmd这句话是什么意思,说明里好像找不到。


#!pecmd
没有什么特别的涵义, 脚本开始的特别注释。只是为一个PECMD脚本表示
暗示,本脚本由pecmd解释器解释执行。
一般脚本开始为
#!解释器
这样OS/应用有可能自动确定如何执行脚本(如LINUX)

[ 本帖最后由 2012abc19701 于 2012-2-27 01:16 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-6-16 19:13

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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