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

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

   火... [复制链接]
发表于 2014-4-23 21:14:02 | 显示全部楼层
mdyblog 发表于 2014-4-23 16:00
WAIT  *进程号

进程号 可以FIND 找到, 一般是  EXEC 时 保存下来的。

&是不是必须的?

点评

不是, 没有&就是环境变量。 可以的。  详情 回复 发表于 2014-4-23 22:13
回复

使用道具 举报

 楼主| 发表于 2014-4-23 22:13:14 | 显示全部楼层

不是, 没有&就是环境变量。 可以的。
回复

使用道具 举报

 楼主| 发表于 2014-4-24 00:53:56 | 显示全部楼层
hhh333 发表于 2014-4-23 16:03
ipad处理得怎么样了?

    IPAD IPAD2,L57T104W100H24,192.168.1.10,

ENVI @名称.VAL=?.名字
名字 返回整个.分割的IP


ENVI @名称.VAL=?.
ENVI @名称.VAL=?
%名称%  返回整个.分割的IP



    ENVI @IPAD2.VAL=?  
    MESS %IPAD2%

    ENVI @IPAD2.VAL=?.  
    MESS %IPAD2%

    ENVI @IPAD2.VAL=?.FullIP  
    MESS %FullIP%

点评

你的意思是在引用之前要用ENVI赋值一下,不能直接引用?  详情 回复 发表于 2014-4-24 06:56
回复

使用道具 举报

 楼主| 发表于 2014-4-24 01:22:23 | 显示全部楼层
本帖最后由 mdyblog 于 2014-4-24 01:25 编辑
四海皆狂龙 发表于 2014-4-23 13:15
请问如何等待一个进程结束,比如说之前非阻塞(线程也行)运行aaa.exe ,在等待这个进程结束才运行exporler ...


回sp_star  及 前面 某位仁兄。
_sub  _end 可以了。  

PECMD2012.1.86.02.00
回复

使用道具 举报

 楼主| 发表于 2014-4-24 01:25:14 | 显示全部楼层
四海皆狂龙 发表于 2014-4-23 13:15
请问如何等待一个进程结束,比如说之前非阻塞(线程也行)运行aaa.exe ,在等待这个进程结束才运行exporler ...

>>线程也行

WAIT  *=线程号
必进程多个=
回复

使用道具 举报

发表于 2014-4-24 06:56:09 | 显示全部楼层
本帖最后由 hhh333 于 2014-4-24 07:13 编辑
mdyblog 发表于 2014-4-24 00:53
IPAD IPAD2,L57T104W100H24,192.168.1.10,

ENVI @名称.VAL=?.名字


你的意思是在引用之前要用ENVI赋值一下,不能直接引用?其他的控件都是直接引用的

能不能这么用:ENVI @名称.VAL=?.$IP

经过测试,不能把它直接赋给系统级变量,如上面的形式

点评

》》不能直接引用?其他的控件都是直接引用的 ”直接引用“ 不太好, 引起系统很大消耗, 不低碳环保。 那些变量 的同步, 是需要后台程序服务的。 一堆的 控件, 有一堆的变量 check enabe visable .....  详情 回复 发表于 2014-4-24 08:11
ENVI @名称.VAL=?.IP ENVI $IP=%IP% IP前的$不是变量名的一部分, 而是ENVI的操作马的一部分, 相当于 -sys 只能 ENVI $变量名=。。。  详情 回复 发表于 2014-4-24 08:07
回复

使用道具 举报

 楼主| 发表于 2014-4-24 08:07:52 | 显示全部楼层
hhh333 发表于 2014-4-24 06:56
你的意思是在引用之前要用ENVI赋值一下,不能直接引用?其他的控件都是直接引用的

能不能这么用:EN ...

ENVI @名称.VAL=?.IP
ENVI  $IP=%IP%

IP前的$不是变量名的一部分, 而是ENVI的操作马的一部分, 相当于 -sys

只能   ENVI $变量名=。。。

点评

OH,我理解错误  详情 回复 发表于 2014-4-24 08:12
回复

使用道具 举报

 楼主| 发表于 2014-4-24 08:11:36 | 显示全部楼层
hhh333 发表于 2014-4-24 06:56
你的意思是在引用之前要用ENVI赋值一下,不能直接引用?其他的控件都是直接引用的

能不能这么用:EN ...

》》不能直接引用?其他的控件都是直接引用的

”直接引用“ 不太好, 引起系统很大消耗, 不低碳环保。
那些变量 的同步, 是需要后台程序服务的。
一堆的 控件, 有一堆的变量 check  enabe  visable  .....
没用到还是在浪费CPU, 太耗能了。

还是 按需调用的 低碳环保。
后来增加的 控件, 主要是  “按需调用”。

点评

原来这样,那就按需调用比较好。  详情 回复 发表于 2014-4-25 07:31
回复

使用道具 举报

发表于 2014-4-24 08:12:53 | 显示全部楼层
mdyblog 发表于 2014-4-24 08:07
ENVI @名称.VAL=?.IP
ENVI  $IP=%IP%

OH,我理解错误
回复

使用道具 举报

发表于 2014-4-24 11:05:01 | 显示全部楼层
我始终认为不够规范
比如说
EXEC =! X:\windows\ORDERDRV.CMD
EXEC --wait --hide X:\windows\ORDERDRV.CMD
居然是相同的,开始我没有搞清楚=!,但我要找这个功能,所以找到了--wait --hide ,很明显--wait --hide 是新标准,这种理解是比较不错的,至少比符号表示要好,而且=!在通常的语言中表示的是“不等于”,所以这个不符合常规理解,如果为了兼容旧语法,能不能在写文档的时候,把旧语法和新语法分开归类。关于语法不规范问题我也就想到au3和ahk,虽然说ahk是au分出来的派系,但是au在au3后规范化了语法,所以非常容易学习,但ahk就非常复杂,虽然看上去类c。起初我也不了解为什么有人说ahk不规范,但是接触后就知道,原来如此。

点评

=!这个简洁,倒不是问题,也是PECMD的一个特色,与4.0兼容部分的写法还是可取的,作者主要是把新增功能规划好就行了。  详情 回复 发表于 2014-4-24 16:49
=! 是历史。 很多代码都是这么写的。  详情 回复 发表于 2014-4-24 14:02
回复

使用道具 举报

 楼主| 发表于 2014-4-24 14:02:17 | 显示全部楼层
四海皆狂龙 发表于 2014-4-24 11:05
我始终认为不够规范
比如说
EXEC =! X:\windows\ORDERDRV.CMD

=!
是历史。
很多代码都是这么写的。
回复

使用道具 举报

发表于 2014-4-24 16:49:12 | 显示全部楼层
四海皆狂龙 发表于 2014-4-24 11:05
我始终认为不够规范
比如说
EXEC =! X:\windows\ORDERDRV.CMD

=!这个简洁,倒不是问题,也是PECMD的一个特色,与4.0兼容部分的写法还是可取的,作者主要是把新增功能规划好就行了。

点评

特色,确实是特色。有时候我想到凤姐,其实也是特色,尽管丑的有特色。不过说真的,文档应该分开,比如说 旧规则一个表格:..... 新规则一个表格:  详情 回复 发表于 2014-4-24 19:27
回复

使用道具 举报

发表于 2014-4-24 19:27:17 | 显示全部楼层
hhh333 发表于 2014-4-24 16:49
=!这个简洁,倒不是问题,也是PECMD的一个特色,与4.0兼容部分的写法还是可取的,作者主要是把新增功能 ...

特色,确实是特色。有时候我想到凤姐,其实也是特色,尽管丑的有特色。不过说真的,文档应该分开,比如说 旧规则一个表格:.....  新规则一个表格:
回复

使用道具 举报

发表于 2014-4-25 07:17:33 | 显示全部楼层
不知道能不能判断文件是否被占用,我这个主要解决到底引导的是哪个iso img 的pe。

点评

》》不知道能不能判断文件是否被占用,我这个主要解决到底引导的是哪个iso img 的pe。 这2这没关系。 文件被占用 是windows后 的事。 “引导“的是哪个iso img 的pe 是 window 前, 不会引起 ”文件被占用  详情 回复 发表于 2014-4-25 08:04
回复

使用道具 举报

发表于 2014-4-25 07:31:30 | 显示全部楼层
mdyblog 发表于 2014-4-24 08:11
》》不能直接引用?其他的控件都是直接引用的

”直接引用“ 不太好, 引起系统很大消耗, 不低碳环保 ...

原来这样,那就按需调用比较好。
回复

使用道具 举报

 楼主| 发表于 2014-4-25 08:04:08 | 显示全部楼层
四海皆狂龙 发表于 2014-4-25 07:17
不知道能不能判断文件是否被占用,我这个主要解决到底引导的是哪个iso img 的pe。

》》不知道能不能判断文件是否被占用,我这个主要解决到底引导的是哪个iso img 的pe。

这2这没关系。

文件被占用 是windows后 的事。

“引导“的是哪个iso img 的pe 是 window 前, 不会引起 ”文件被占用“。  

点评

应该不是,我记得如果是iso启动的,那么这个iso是无法删除的,如果是wim启动,我试过修改保存文件,立即就蓝屏。不过如果真像你所说,我可能需要重复求证。  详情 回复 发表于 2014-4-25 09:22
回复

使用道具 举报

发表于 2014-4-25 09:22:06 | 显示全部楼层
mdyblog 发表于 2014-4-25 08:04
》》不知道能不能判断文件是否被占用,我这个主要解决到底引导的是哪个iso img 的pe。

这2这没关系。
...

应该不是,我记得如果是iso启动的,那么这个iso是无法删除的,如果是wim启动,我试过修改保存文件,立即就蓝屏。不过如果真像你所说,我可能需要重复求证。
回复

使用道具 举报

发表于 2014-4-25 12:14:32 | 显示全部楼层
wim我测试改名,看来没问题,iso等待测试。
回复

使用道具 举报

 楼主| 发表于 2014-4-26 09:58:41 | 显示全部楼层
RAMD IMDISK*   修正了  中文路径 查询不到的 问题。
回复

使用道具 举报

发表于 2014-4-26 14:09:16 | 显示全部楼层
  1. _SUB Loop
  2. FORM DriveType=%AllDrive%
  3. LSTR aStr=2,%AllDrive%
  4. FIND $%aStr%=C:,!FIND $%aStr%=X:,!FIND $%aStr%=Y:,!FIND $%DriveType%=DRIVE_CDROM,!FIND $%DriveType%=VIRTUAL_CDROM,!ENVI RDrive=%RDrive%|%aStr%
  5. MSTR AllDrive=4,0,%AllDrive%
  6. FIND $%AllDrive%=:,!CALL Loop
  7. _END

  8. _SUB SetWindows
  9.   ENVI @Button1.Enable=%bE%
  10.   ENVI @Button2.Enable=%bE%
  11.   ENVI @Radio1.Enable=%bE%
  12.   ENVI @Radio2.Enable=%bE%
  13.   ENVI @Radio3.Enable=%bE%
  14.   ENVI @Radio5.Enable=%bE%
  15.   ENVI @Check1.Enable=%bE%
  16.   ENVI @Check2.Enable=%bE%
  17.   ENVI @List1.Enable=%bE%
  18.   FIND $%bE%=1,FIND $%Targe%=0,ENVI @List1.Enable=1!ENVI @List1.Enable=0
  19. _END

  20. _SUB SetType
  21.   FIND $%Radio1.Check%=1,ENVI Type=0
  22.   FIND $%Radio2.Check%=1,ENVI Type=1
  23. _END

  24. _SUB SetTarge
  25.   FIND $%Radio3.Check%=1,ENVI Targe=0
  26.   FIND $%Radio5.Check%=1,ENVI Targe=2
  27.   FIND $%Targe%=0,ENVI @List1.Enable=1!ENVI @List1.Enable=0
  28. _END

  29. _SUB Updata
  30.   EXEC =bootsect.exe %BOOTSECT_CMD%
  31.   MESS 操作完成。@提示#OK
  32. _END

  33. _SUB BOOTSECT
  34.   ENVI bE=0
  35.   CALL SetWindows
  36.   ENVI Result=1
  37.   TEAM ENVI Force=|ENVI Mbr=
  38.   FIND $%Type%=0,ENVI NtBoot=/nt52!ENVI NtBoot=/nt60  
  39.   FIND $%Targe%=0,FIND $%ChoiceDrv%=选择一个分区,FIND $%List1%=%ChoiceDrv%,TEAM ENVI Result=0|MESS 请%ChoiceDrv%。@错误#OK
  40.   FIND $%Result%=1,FIND $%Targe%=0,ENVI Volume=%List1%
  41.   FIND $%Result%=1,FIND $%Targe%=2,ENVI Volume=ALL
  42.   FIND $%Result%=1,FIND $%Check1.Check%=1,ENVI Force=/Force
  43.   FIND $%Result%=1,FIND $%Check2.Check%=1,ENVI Mbr=/Mbr
  44.   FIND $%Result%=1,ENVI BOOTSECT_CMD=%NtBoot% %Volume% %Force% %Mbr%
  45.   FIND $%Result%=1,CALL Updata
  46.   ENVI bE=1
  47.   CALL SetWindows
  48. _END

  49. _SUB Windows1,W340H235,%WinName%,,#1
  50.   LIST List1,L12T12W100H20,%ChoiceDrv%|%AllDrive%,,%ChoiceDrv%
  51.   CHEK Check1,L128T10W200H20,/Force(强制卸除卷,必须谨慎!),,
  52.   CHEK Check2,L128T30W200H20,/MBR(重新写入 MBR ),,
  53.   GROU Group1,L12T48W308H56,启动代码
  54.   RADI Radio1,L022T68W148H24,NT52(WinXP/2K3类型),CALL SetType,1
  55.   RADI Radio2,L178T68W140H24,NT60(Win7/2K8类型),CALL SetType,,
  56.   GROU Group2,L12T116W208H80,更新目标
  57.   RADI Radio3,L024T136W184H24,DriveLetter(选择所指定的分区),CALL SetTarge,1,1
  58.   RADI Radio5,L024T160W184H24,ALL(所有主分区的主启动代码),CALL SetTarge,,1
  59.   ITEM Button1,L240T125W68H30,执行,CALL BOOTSECT
  60.   ITEM Button2,L240T161W68H30,退出,KILL \%WinName%
  61. _END

  62. ENVI WinName=BootSect
  63. ENVI Type=0
  64. ENVI Targe=0
  65. ENVI NtBoot=/NT52
  66. ENVI Volume=C:
  67. FIND $%ChoiceDrv%=,ENVI ChoiceDrv=选择一个分区
  68. ENVI Result=0
  69. ENVI RDrive=C:
  70. FDRV AllDrive=
  71. CALL Loop
  72. ENVI AllDrive=%RDrive%

  73. CALL @Windows1
复制代码

网虫2008的pe中的一段bootsect.exe的gui界面代码,怎么在pecmd2012中运行没有反应,出不来界面。是不是它他的代码有问题,但是在他的pe中是可以的。

还有包内的示例代码中的
UDTOOL.wcs
VHD.wcs
运行也没有反应,出不来界面。

点评

这个本来就没有界面。、 是命令行调用的。  详情 回复 发表于 2014-4-26 19:18
LOOP 函数有逻辑问题,需要加个 FIND $%AllDrive%=,! [/backcolor]否则死循环 _SUB Loop FORM DriveType=%AllDrive% LSTR aStr=2,%AllDrive% FIND $%aStr%=C:,!FIND $%aStr%=X:,!FIND $%aStr%=Y:  详情 回复 发表于 2014-4-26 19:17
好长啊。。。。回去再看看。  详情 回复 发表于 2014-4-26 16:26
回复

使用道具 举报

 楼主| 发表于 2014-4-26 16:26:34 | 显示全部楼层
本帖最后由 mdyblog 于 2014-4-26 16:44 编辑
freesoft00 发表于 2014-4-26 14:09
网虫2008的pe中的一段bootsect.exe的gui界面代码,怎么在pecmd2012中运行没有反应,出不来界面。是不是它 ...


好长啊。。。。回去再看看。

好像  CALL Loop  的问题。 嵌套死循环。
回复

使用道具 举报

 楼主| 发表于 2014-4-26 19:17:14 | 显示全部楼层
freesoft00 发表于 2014-4-26 14:09
网虫2008的pe中的一段bootsect.exe的gui界面代码,怎么在pecmd2012中运行没有反应,出不来界面。是不是它 ...


LOOP 函数有逻辑问题,需要加个
FIND $%AllDrive%=,!  否则死循环
_SUB Loop
    FORM DriveType=%AllDrive%
    LSTR aStr=2,%AllDrive%
    FIND $%aStr%=C:,!FIND $%aStr%=X:,!FIND $%aStr%=Y:,!FIND $%DriveType%=DRIVE_CDROM,!FIND $%DriveType%=VIRTUAL_CDROM,!ENVI RDrive=%RDrive%|%aStr%
    MSTR AllDrive=4,0,%AllDrive%
    FIND $%AllDrive%=,!  FIND $%AllDrive%=:,! CALL Loop
_END




-------
另外比建议这种循环调用。(这可能是BAT直接转个来的,BAT 有个GOTO, 估计是 goto  :Loop 来模拟循环)
因为 没调用一次,需要一点堆栈内存。 堆栈内存 是 陈旭设定好的固定大小。 很容易耗尽而内存溢出,出现 灵异 现象。
建议直接直接按 原逻辑 改为 LOOP循环。如下。
_SUB Loop
    LOOP #1=1,    //《====循环
    {
        FIND $%AllDrive%=,  EXIT LOOP  
        FIND $%AllDrive%=:, EXIT LOOP
        FORM DriveType=%AllDrive%
        LSTR aStr=2,%AllDrive%
        FIND $%aStr%=C:,! FIND $%aStr%=X:,! FIND $%aStr%=Y:,! FIND $%DriveType%=DRIVE_CDROM,! FIND $%DriveType%=VIRTUAL_CDROM,! ENVI RDrive=%RDrive%|%aStr%
        MSTR AllDrive=4,0,%AllDrive%
    }
_END




点评

你完整的改一下吧,我不知道如何修改。  详情 回复 发表于 2014-4-26 21:08
回复

使用道具 举报

 楼主| 发表于 2014-4-26 19:18:21 | 显示全部楼层
freesoft00 发表于 2014-4-26 14:09
还有包内的示例代码中的
UDTOOL.wcs
VHD.wcs
运行也没有反应,出不来界面。


这个本来就没有界面。、
是命令行调用的。
回复

使用道具 举报

发表于 2014-4-26 21:08:11 | 显示全部楼层
mdyblog 发表于 2014-4-26 19:17
LOOP 函数有逻辑问题,需要加个 FIND $%AllDrive%=,!  否则死循环
_SUB Loop
    FORM D ...

你完整的改一下吧,我不知道如何修改。

点评

GuiBootsect.zip  详情 回复 发表于 2014-4-26 21:32
回复

使用道具 举报

 楼主| 发表于 2014-4-26 21:32:24 | 显示全部楼层
freesoft00 发表于 2014-4-26 21:08
你完整的改一下吧,我不知道如何修改。

GuiBootsect.zip
GuiBootsect.zip (1.22 KB, 下载次数: 9)
回复

使用道具 举报

发表于 2014-4-27 11:36:49 | 显示全部楼层
本帖最后由 四海皆狂龙 于 2014-4-27 11:50 编辑

如何查找目录?
例如在所有分区查找/win8

点评

ENVI DIR= FDRV ALLDrv=* FORX  * %ALLDrv% , &&d, IFEX %&d%:\win8\, TEAM ENVI DIR=%&d%| EXIT FORX MESS DIR[%DIR%]  详情 回复 发表于 2014-4-27 13:26
回复

使用道具 举报

发表于 2014-4-27 11:44:00 | 显示全部楼层
本帖最后由 四海皆狂龙 于 2014-4-27 11:51 编辑

还有
exec 并没有办法执行关联文件,cmd 可以,但cmd有黑色窗口。比如执行123.jpg,按照常规它应该调用相关程序打开,但是exec是不起作用的。

点评

EXEC $123.jpg 多研究 一下 HELP, 很有好处的。  详情 回复 发表于 2014-4-27 13:18
回复

使用道具 举报

 楼主| 发表于 2014-4-27 13:18:26 | 显示全部楼层
本帖最后由 mdyblog 于 2014-4-27 13:20 编辑

四海皆狂龙 发表于 2014-4-27 11:44
还有
exec 并没有办法执行关联文件,cmd 可以,但cmd有黑色窗口。比如执行123.jpg,按照常规它应该调用相 ...


EXEC   $123.jpg

多研究 一下 HELP, 很有好处的。
┃    │命令│'EXEC'                                                                                      ┃
┃    ├──┼──────────────────────────────────────────────┨
┃    │格式│EXEC[|][*[1|N|-]] [-catch] [-cmd:[:ms:]CMD] [-clone:变量名] [-pid:变量名] [-no64]           ┃
┃    │    │    [-user:用户名  [-passwd:明文密码|-passwd*BASE密文密码]] [-limit] [-wd:
  • 工作目录]      ┃
    ┃    │    │    [-REALTIME] [-HIGH] [-ABOVENORMAL]  [-NORMAL] [-BELOWNORMAL] [-LOW] [-IDLE] [-mem]      ┃
    ┃    │    │    [-min] [-max] [-show]  [-wait] [-hide] [-doc:[mode]] [-hook] [-runs] [-job]             ┃
    ┃    │    │    [-raw] [-logs:[?]
  • LOGS文件] [-nowin]                                                  ┃
    ┃    │    │    [-exe:execfilename] [-err] [-err+]  [--]   NAME[+]=[=][!]
  • [@][$][&]<EXE路径>[参数]    ┃
    ┃    │    │EXEC -poprmenu[:x.y]      文件名    //弹出改文件的右键菜单                                  ┃
    ┃    │    │EXEC -runrmenu:菜单项名   文件名    //执行该文件的指定右键菜单条目                          ┃
    ┃    │    │EXEC /InstallService name [--delayservice ms] [--wait] [--nowait] [--nojob] [--hide]        ┃
    ┃    │    │         [--killwin 标题] [--killwin2]         [--idle ms  [--idlewait]]    cmd_and_params  ┃
    ┃    │    │EXEC /RemoveService  name                                                                   ┃
    ┃    ├──┼──────────────────────────────────────────────┨
    ┃    │功能│执行 EXE 、BAT、CMD 程序。                                                                  ┃
    ┃    ├──┼──────────────────────────────────────────────┨
    ┃    │参数│■指定程序路径和参数。前导参数如下(可同时使用,不分先后顺序):                              ┃
    ┃    │    │※-cmd:[:ms:]CMD 表示定时执行的命令。ms默认1000ms,不混淆时后面“:”可省,必须是第一开关;  ┃
    ┃    │    │※-limit 表示安全方式执行,此时没有管理员权限;--job为作业方式,配合=确保子孙进程也一同死掉 ┃
    ┃    │    │    /REALTIME 实时优先级,/HIGH 为HIGH优先级,/ABOVENORMAL 为ABOVENORMAL优先级,            ┃
    ┃    │    │    /NORMAL 为NORMAL优先级,/BELOWNORMAL 为BELOWNORMAL优先级,/IDLE /LOW 为最低优先级;     ┃
    ┃    │    │※-- 表示-开关/开关结束,只在避免开关与命令混淆时才必须;                                   ┃
    ┃    │    │※-wait前导"="表示等待执行完成;                                                            ┃
    ┃    │    │※-exe:execfilename表示执行文件的名字,可以执行非标准后缀的执行文件,如myinstall.tmp,此时  ┃
    ┃    │    │  后面的<EXE路径>只是作为命令行的一部分而已,可以任意写,甚至不存在或张冠李戴;             ┃
    ┃    │    │※-wd:
  • 工作目录表示设置执行程序的工作目录,有空字符前后用引号,“*”则为文件名取其目录;  ┃
    ┃    │    │  -wd:** 指执行文件自身的目录。                                                             ┃
    ┃    │    │※-pid:varname表示将pid存入变量varname,可以用KILL准确杀掉;                                ┃
    ┃    │    │※-hide 或前导"!"或"*"表示以隐藏方式执行;                                                  ┃
    ┃    │    │※-show 表示显示执行;                                                                      ┃
    ┃    │    │※-min或前导"^"或前导"_"表示最小方式执行;                                                  ┃
    ┃    │    │※-max或前导"&"表示最大方式执行;                                                           ┃
    ┃    │    │※-doc[:mode]表示文档模式;以ShellExecute函数执行,可以打开非可执行文件(如*.TXT、.BMP 等);
    ┃    │    │  mode可以省略,可以open、edit、explore、find、print、properties、runas,也可以打开可执行文
    ┃    │    │  件,runas 用于需要超级权限的安装程序等;                                                  ┃
    ┃    │    │※-user: -passwd: -passwd* 用来以指定账户运行程序;                                         ┃
    ┃    │    │※-err表示捕获标准错误输出,-err+捕获标准输出和标准错误输出;                               ┃
    ┃    │    │※-mem在内存执行的幽灵进程;                                                                ┃
    ┃    │    │※-raw 捕捉的是原始2进制数据。 EXEC*  -raw                                                  ┃
    ┃    │    │※-nowin 没有窗口(CREATE_NO_WINDOW);                                                       ┃
    ┃    │    │※前导"$"表示文档模式;                                                                     ┃
    ┃    │    │※前导"@"表示在后台桌面(WinLogon)执行,彻底隐藏,无法与用户交互,可用于注册,如:           ┃
    ┃EXEC│    │  "EXEC @PECMD.EXE CALL $SHELL32.DLL,DllInstall,#1,U";                                     ┃
    ┃    │    │※-hook修改进程中的关机代码(挂接"ExitWindowsEx"函数),建议执行"EXEC --hook =EXPLORER.EXE,  ┃
    ┃    │    │  "修改SHELL的关机函数,这样执行"开始->关闭系统"的时候就会运行"PECMD.EXE SHUT"命令来关机;  ┃
    ┃    │    │※-runs表示写入到注册表自动运行(建议用RUNS命令),由Shell登录后运行。如果使用前导"=",将在   ┃
    ┃    │    │  "HKLM\Software\Microsoft\Windows\CurrentVersion\Run"的键下,否则在                        ┃
    ┃    │    │  "HKCR\Software\Microsoft\Windows\CurrentVersion\Run"的键下;                              ┃
    ┃    │    │※EXEC后缀 | 表示管道模式,此时支持2进制命令管道,>  >>  <  2>  >& 重定向符号               ┃
    ┃    │    │※EXEC*[1|N|-] NAME= 表示将程序的标准输出存入指定变量NAME中,强制为等待方式。1为只取第一行;┃
    ┃    │    │  N为直接去掉换行,合为一行。-为去掉最后的换行,否则保持原样。太多的数据必须用PE变量保    ┃
    ┃    │    │  存(如&ABC)。NAME可以是 @控件名,这样实时显示在控件上,NAME+=为追加模式;  -catch亦为此    ┃
    ┃    │    │  ▲注意EXEC*1 ... 收到一行信息后马上终止执行的命令。                                       ┃
    ┃    │    │※-clone:变量名: 克隆一个PECMD来运行变量名中的脚本。--exe:可以指定另一个PECMD.EXE。        ┃
    ┃    │    │    配合--logs:[?]
  • LOGS文件; 有?则当前开启LOGS是才有效                                   ┃
    ┃    │    │※-no64:对pecmd32, 不解除对X64文件系统的限制。                                              ┃
    ┃    │    │※/InstallService 为安装服务,服务名字为 name;/RemoveService 为卸载服务,只能用于命令行,脚┃
    ┃    │    │  本中可以 EXEC =%MyName% /InstallService ... ;                                            ┃
    ┃    │    │  --killwin 针对 MESS-svr的窗口;--killwin2 针对MESS-svr2的窗口;                           ┃
    ┃    │    │  --wait 等待进程结束(默认),--nowait 不等待,--idle ms空闲ms毫秒后执行命令;               ┃
    ┃    │    │  --nojob不杀子进程;                                                                       ┃
    ┃    │    │  --idlewait  有输入时不终止已运行程序,否则有输入即终止已运行程序;                        ┃
    ┃    │    │  执行体 HERE_IS_SERVICE0:后可内置服务参数,100 字符。                                     ┃
    ┃    │    ├──────────────────────────────────────────────┨
    ┃    │    │※执行内嵌程序。可以--exe:传递 或 命令首词传递。#数字 为直接在内存执行;*#数字 为放入自动删 ┃
    ┃    │    │   除的临时文件执行。数字为资源EXEDATA下的号码,可以CMPS压缩。很多程序必须用后者。          ┃
    ┃    ├──┼──────────────────────────────────────────────┨
    ┃    │示例│EXEC =!CMD.EXE /C "DEL /Q /F %TEMP%"                                                        ┃
    ┃    │    │EXEC*1 &&LABEL=!CMD.EXE /C dir C:\......                                                    ┃
    ┃    │    │EXEC*N &&VER=!CMD.EXE /C VER                                                                ┃
    ┃    │    │EXEC* &&DIRT=!CMD.EXE /C DIR /S T:\xxxxx 2>&1                                               ┃
    ┃    │    │EXEC* @Edit1=!ping 127.0.0.1                                                                ┃
    ┃    │    │EXEC| =!ipconfig > ip.txt                                                                   ┃
    ┃    │    │EXEC|  !cmd /c dir  | !=gzip.exe -9 > dirs.gz                                               ┃
    ┃    │    │EXEC|*  &&V=!gzip.exe -d < dirs.gz                                                          ┃
    ┃    │    │PECMD.EXE EXEC /InstallService IdlePoweroff --nowait --delayservice 20000 --hide            ┃
    ┃    │    │                         --idle 1200000  shutdown -f -s -t 30                               ┃
    ┃    │    │EXEC* --exe:#100 &&V=cmd /c dir  //调用内嵌的cmd.exe,直接在内存执行                         ┃
    ┃    │    │EXEC --clone:&MyStript   参数A  B  C                                                        ┃
    ┃    ├──┼──────────────────────────────────────────────┨
    ┃    │备注│SHELL 也是通过此命令来载入的;                                                              ┃
    ┃    │    │等待模式%&&ERRORLEVEL%为程序退出码;%ERROR% %&&ERROR%也是此值。                             ┃
    ┃    │    │可以如批处理文件一样,不用EXEC, 直接运行,此时为等待模式。如 NOTEPAD;                     ┃
    ┃    │    │没有命令时后缀为WC?、IN?、TX?,且文件存在,按LOAD;否则按EXEC;                             ┃
    ┃    │    │开关前导有冲突时,最后的有效。前导和文件名间可以加空格分断;                                ┃
    ┃    │    │文档模式,如果要带参数,文件名必须用"刮起来,否则全部当一个文件名。                         ┃
    ┃    ├──┼──────────────────────────────────────────────┨
  • 回复

    使用道具 举报

     楼主| 发表于 2014-4-27 13:26:25 | 显示全部楼层
    本帖最后由 mdyblog 于 2014-4-27 13:28 编辑
    四海皆狂龙 发表于 2014-4-27 11:36
    如何查找目录?
    例如在所有分区查找/win8


    ENVI DIR=

    FDRV &&ALLDrv=*
    FORX  *  %&ALLDrv% , &&d, IFEX  %&d%:\win8\, TEAM ENVI DIR=%&d%| EXIT FORX

    MESS DIR[%DIR%]

    点评

    这个看上去比较复杂,需要多个语句结合使用。  详情 回复 发表于 2014-4-27 14:23
    回复

    使用道具 举报

    发表于 2014-4-27 14:23:15 | 显示全部楼层
    mdyblog 发表于 2014-4-27 13:26
    ENVI DIR=

    FDRV &&ALLDrv=*

    这个看上去比较复杂,需要多个语句结合使用。

    点评

    能用就行嘛。写成函数 就好了。 //FIndDirAllDrv 变量名 "目录名" _SUB FIndDirAllDrv ENVI-ret %~1= FDRV &&ALLDrv=* FORX  * %&ALLDrv% , &&d, IFEX %&d%:%~2\, TEAM ENVI-ret %~1  详情 回复 发表于 2014-4-27 14:51
    回复

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2026-3-18 04:12

    Powered by Discuz! X3.5

    © 2001-2026 Discuz! Team.

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