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

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

   火... [复制链接]
发表于 2015-5-6 16:43:19 | 显示全部楼层
本帖最后由 527104427 于 2015-5-6 16:46 编辑
hhh333 发表于 2015-5-6 16:09
我前面提问时掉了一个&,实际上是一致的。但确实是不行的。
确实象LZ所说加上ENVI  &&OPD=
进行初始 ...

{  后面有个符号 *

没有这个符号,{ }里面的PE变量会自动销毁,加了就是this调用,不销毁PE变量
1.png

点评

经过测试: 1、如你所说:循环中加*号与循环前初始化效果一样是正常的。不过这种用法真是不好理解的,PECMD中*号已经泛滥到了很难理解的程度 2、总之为&号的变量的用法还是不好理解,我还是尽量用不加&号的变量算  详情 回复 发表于 2015-5-7 10:48
回复

使用道具 举报

发表于 2015-5-6 16:45:11 | 显示全部楼层
mdyblog 发表于 2015-5-6 14:04
对。而且是否用PE变量前后要一致。

完整点还要初始化一下:

请教老大,下面三行代码有何不同?

ENVI  &&OPD=:::     
ENVI  &&OPD=
ENVI  &OPD=

点评

1) ENVI &&OPD=::: 就是初始化一个新变量,内容为【:::】.随便写的非法数据, 就是使得下面 【IFEX %&OPD%\WINPE.INI,LOAD %&OPD%\WINPE.INI】非法。 2) ENVI &&OPD= 就是初始化一个新变量,内容为  详情 回复 发表于 2015-5-6 16:53
回复

使用道具 举报

 楼主| 发表于 2015-5-6 16:53:12 | 显示全部楼层
527104427 发表于 2015-5-6 16:45
请教老大,下面三行代码有何不同?

ENVI  &&OPD=:::     

1)
ENVI  &&OPD=:::     
就是初始化一个新变量,内容为【:::】.随便写的非法数据, 就是使得下面 【IFEX %&OPD%\WINPE.INI,LOAD %&OPD%\WINPE.INI】非法。

2)
ENVI  &&OPD=
就是初始化一个新变量,内容为空【】. 【IFEX %&OPD%\WINPE.INI,LOAD %&OPD%\WINPE.INI】有效的, 【IFEX  \WINPE.INI,LOAD \WINPE.INI】,这可能不是想要的。

3)
ENVI  &OPD=
------------
如果自己、或爸爸、或爷爷。。。,  有OPD这个PE变量, 内容设为空。
否则, 新建个PE变量:OPD, 内容设为空。

点评

多谢,原来如此……  详情 回复 发表于 2015-5-6 16:56
回复

使用道具 举报

发表于 2015-5-6 16:56:56 | 显示全部楼层
mdyblog 发表于 2015-5-6 16:53
1)
ENVI  &&OPD=:::     
就是初始化一个新变量,内容为【:::】.随便写的非法数据, 就是使得下面 【I ...

多谢,原来如此……
回复

使用道具 举报

发表于 2015-5-6 18:28:59 | 显示全部楼层
请教一下楼主
SCRIPTINIT中的100资源 可否清空?
是否会对在PE中的正常使用照成影响呢
还有SCRIPT的102资源中有一小段东西
我现在的做法是把SCRIPTINIT中的100资源清空了
SCRIPT的102资源清空后在里面写的配置
表面没看出什么问题
希望大大能解答一下我的疑惑 因为本人是新手
对照着说明看了很久也没明白100资源的含义

点评

1: SCRIPTINIT中的100 ---------- 里面是一些初始化。 PECMD.EXE启动的时候会执行的。 2:清空 ---- 没有太大的问题。 只是哪些 默认的操作没有执行而已。 如果不需要,就不理他。 如果需要,可以在  详情 回复 发表于 2015-5-7 08:34
回复

使用道具 举报

发表于 2015-5-7 08:33:33 | 显示全部楼层
PECMD需要内置 IMDISK吗?

关键他那个版本在不断变化,也不知道哪个版本稳定, 不压缩,要大一百几十K呢

通常的版本文件不全,

awealloc.sys
swapadd.exe
上面两个用于设置页面文件到内存盘
imdisk.cpl
imdisk.exe   命令行
imdisk.sys

图形界面不说了,
可以命令行:创建,扩容,设置页面文件
CPL可以精简下资源

回复

使用道具 举报

 楼主| 发表于 2015-5-7 08:34:24 | 显示全部楼层
小絔小小小 发表于 2015-5-6 18:28
请教一下楼主
SCRIPTINIT中的100资源 可否清空?
是否会对在PE中的正常使用照成影响呢

1:
SCRIPTINIT中的100
----------
里面是一些初始化。
PECMD.EXE启动的时候会执行的。


2:清空
----
没有太大的问题。
只是哪些 默认的操作没有执行而已。
如果不需要,就不理他。
如果需要,可以在自己的脚本中再执行,效果一样的。


3:还有SCRIPT的102资源中有一小段东西
-------
那个没有用。占个问题。方便测试: LOAD  #102
就能“看”到效果

4:
SCRIPT的102资源清空后在里面写的配置
------------
可以的。
只是不会自动被执行。
可以手动执行: PECMD   LOAD   #102
也可以在 SCRIPT\101 中调用它:   LOAD   #102
后面的编号都可以的 103 104 105 .。。。

点评

嗯 感谢回复! 我就是直接在注册表里写的pecmd mian #102  详情 回复 发表于 2015-5-7 17:52
回复

使用道具 举报

发表于 2015-5-7 10:48:59 | 显示全部楼层
本帖最后由 hhh333 于 2015-5-7 10:51 编辑
527104427 发表于 2015-5-6 16:43
{  后面有个符号 *

没有这个符号,{ }里面的PE变量会自动销毁,加了就是this调用,不销毁PE变量


经过测试:
1、如你所说:循环中加*号与循环前初始化效果一样是正常的。不过这种用法真是不好理解的,PECMD中*号已经泛滥到了很难理解的程度
2、总之加&号的变量的用法还是不好理解,我还是尽量用不加&号的变量算了

如定义时用 &&xxx,引用时究竟用&xxx,还是xxx,应该如何理解?

点评

1: 用PE变量是为了写大型程序(>1000行),或作为函数库。 支持同名变量。 ENVI &&V=123 不用考虑前面是否有人使用V这个变量名。 环境变量做不到。一不小心修改了上级的循环变量。 2:如定义时用 &&xxx,  详情 回复 发表于 2015-5-7 13:58
回复

使用道具 举报

 楼主| 发表于 2015-5-7 13:58:14 | 显示全部楼层
本帖最后由 mdyblog 于 2015-5-7 14:25 编辑
hhh333 发表于 2015-5-7 10:48
经过测试:
1、如你所说:循环中加*号与循环前初始化效果一样是正常的。不过这种用法真是不好理解的, ...


1: 用PE变量是为了写大型程序(>1000行),或作为函数库。
支持同名变量。
ENVI &&V=123
不用考虑前面是否有人使用V这个变量名。
环境变量做不到。一不小心修改了上级的循环变量。

环境变量 不能存储大型数据的变量,比如1M字节。 PE变量可以2G字节。


2:如定义时用 &&xxx,引用时究竟用&xxx,还是xxx,应该如何理解?
--------------
定义时用 &&xxx。
一般来说, 引用为&&xxx。

有时 引用为 &&xxx,那是为强调是本级的,而不能是爸爸、爷爷那继承的。

{
ENVI  &&V=123
{
MESS  1:[%&V%]  2:[%&&V%]
}
}
得到的 【1:[123]  2:[]】
因为&V在上级定义的,所以 %&&V%没有长这个变量,为空。

点评

我用下面的代码测试了一下: { ENVI &&V=123 { MESS 1、变量定义的下一级:V=%V% &V=%&V% &&V=%&&V% } MESS 2、变量定义的同一级:V=%V% &V=%&V% &&V=%&&V% } MESS 3、变量定义的上一级:  详情 回复 发表于 2015-5-7 17:30
回复

使用道具 举报

发表于 2015-5-7 17:30:32 | 显示全部楼层
本帖最后由 hhh333 于 2015-5-7 17:34 编辑
mdyblog 发表于 2015-5-7 13:58
1: 用PE变量是为了写大型程序(>1000行),或作为函数库。
支持同名变量。
ENVI &&V=123


我用下面的代码测试了一下:
{
        ENVI  &&V=123
        {
                MESS  1、变量定义的下一级:V=%V%   &V=%&V%  &&V=%&&V%
        }
        MESS 2、变量定义的同一级:V=%V%   &V=%&V%  &&V=%&&V%
}
MESS  3、变量定义的上一级:V=%V%   &V=%&V%  &&V=%&&V%

结果如下:
1、变量定义的下一级:V=123   &V=123  &&V=
2、变量定义的同一级:V=123   &V=123  &&V=123
3、变量定义的上一级:V=%V%   &V=  &&V=

最后一个不好理解,&V和&&V为什么为空。而不是未定义状态?
还有就是如果将第一句改为ENVI  &V=123,结果相同。

点评

1:最后一个不好理解,&V和&&V为什么为空。而不是未定义状态? PE变量统一按照 “标准模式”来处理的, 1)未定义统一解释为空。 2)只是从前到后解释一遍,3)不会回头反复猜测什么样的组合才能才能匹配一个变量。  详情 回复 发表于 2015-5-7 18:58
回复

使用道具 举报

发表于 2015-5-7 17:52:25 | 显示全部楼层
mdyblog 发表于 2015-5-7 08:34
1:
SCRIPTINIT中的100
----------


嗯 感谢回复!
我就是直接在注册表里写的pecmd main #102

点评

可以的  详情 回复 发表于 2015-5-7 18:58
回复

使用道具 举报

 楼主| 发表于 2015-5-7 18:58:08 | 显示全部楼层
hhh333 发表于 2015-5-7 17:30
我用下面的代码测试了一下:
{
        ENVI  &&V=123

1:最后一个不好理解,&V和&&V为什么为空。而不是未定义状态?
PE变量统一按照 “标准模式”来处理的,  1)未定义统一解释为空。 2)只是从前到后解释一遍,3)不会回头反复猜测什么样的组合才能才能匹配一个变量。

2:
还有就是如果将第一句改为ENVI  &V=123,结果相同。

如果 前面(包含爸爸爷爷。。。)定义了PE变量V,ENVI  &V=123, 则不生成心的变量,只是设置其值。
否则, 先创建PE变量V,并初始值为123.
前面没有定义PE变量V时, 【ENVI  &V=123】 实际等于【ENVI  &&V=123】
这里前面没有定义PE变量V, 所以  【如果将第一句改为ENVI  &V=123,结果相同。】

点评

哦,我算基本弄清楚了  详情 回复 发表于 2015-5-7 20:57
回复

使用道具 举报

 楼主| 发表于 2015-5-7 18:58:25 | 显示全部楼层
小絔小小小 发表于 2015-5-7 17:52
嗯 感谢回复!
我就是直接在注册表里写的pecmd main #102

可以的
回复

使用道具 举报

发表于 2015-5-7 20:57:37 | 显示全部楼层
mdyblog 发表于 2015-5-7 18:58
1:最后一个不好理解,&V和&&V为什么为空。而不是未定义状态?
PE变量统一按照 “标准模式”来处理的,  ...

哦,我算基本弄清楚了
回复

使用道具 举报

发表于 2015-5-8 21:21:14 | 显示全部楼层
本帖最后由 chenall 于 2015-5-8 21:23 编辑

看了介绍好像 GETF 可以获取资源信息

比如PECMD.EXE里面的资源MENU里面的信息可以获取到吗?

获取到的是字符串数据还是?

点评

PUTF -dd -bs=10M D:\X.TXT,0,"%MyName%"#10021|#4 EXEC $D:\X.TXT ///原始数据。自己研究吧  详情 回复 发表于 2015-5-8 22:21
回复

使用道具 举报

 楼主| 发表于 2015-5-8 22:21:31 | 显示全部楼层
本帖最后由 mdyblog 于 2015-5-8 22:25 编辑
chenall 发表于 2015-5-8 21:21
看了介绍好像 GETF 可以获取资源信息

比如PECMD.EXE里面的资源MENU里面的信息可以获取到吗?

//(1)
PUTF -dd -bs=10M  D:\X.TXT,0,"%MyName%"#10021|#4
EXEC $D:\X.TXT


PUTF -dd -bs=10M  D:\X.TXT,0,""#10021|#4

//(2)
GETF  "%MyName%"#10021|#4,0#1M,&V
MESS. %&V%

或 GETF  ""#10021|#4,0#1M,&V
///原始数据。自己研究吧

点评

刚开始对 内部资源号和目录 的概态不是很理解,通过您的例子,现在明白了 谢谢。^_^  详情 回复 发表于 2015-5-9 09:40
请教老大,不知 SHOW 0#6 和 SHOW 0:6 有何不同? 前者未能分配盘符,后者成功。  详情 回复 发表于 2015-5-9 05:47
回复

使用道具 举报

发表于 2015-5-9 02:55:12 | 显示全部楼层
本帖最后由 小絔小小小 于 2015-5-9 05:33 编辑

请教一下,当REGI要操作的键值名为
@C:\Windows\system32\notepad.exe,-470

类型为
REG_SZ

数据为
新建文本文档

这种键值名该如何处理呢

额外还想请教一下PECMD是否支持读入文档然后查询是否存在某字符串呢
实际应用是想要先用bcdedit生成一个启动列表文档,然后PECMD读取文档,查询其中拥有字符串EFI,既执行额外一些操作。

点评

1: 下载 PECMD2012.1.88.05.61-130810中英.多窗口线程稳定版_win32_64新设计.sfx.7z SET KNAME=@C:\Windows\system32\notepad.exe,-470 REGI $HKCU\SOFTWARE\PECMD\\%KNAME%=新建文本文档 要点: 1) 奇怪  详情 回复 发表于 2015-5-9 18:33
回复

使用道具 举报

发表于 2015-5-9 05:47:34 | 显示全部楼层
本帖最后由 527104427 于 2015-5-9 08:54 编辑
mdyblog 发表于 2015-5-8 22:21
//(1)
PUTF -dd -bs=10M  D:\X.TXT,0,"%MyName%"#10021|#4
EXEC $D:\X.TXT

1.请教老大,不知   SHOW 0#6   和   SHOW 0:6   有何不同?
前者未能分配盘符,后者成功。

2.假设U盘量产为 两个分区,一个为USBCDROM    盘符为  J:   ,一个为数据区,盘符为 H:
   使用命令 EJEC H: ,会将  J:  也整没了。

3.假设 ENVI &&A=cdefgh ,有没有办法将 %&A% 的值转换为大写?


点评

3.假设 ENVI &&A=cdefgh ,有没有办法将 %&A% 的值转换为大写? ----------- PECMD2012.1.88.05.61-130810中英.多窗口线程稳定版_win32_64新设计.sfx.7z ENVI &&A=cdefgh中文ABC SED &V1=0,.*,\u,%&A% SED &V  详情 回复 发表于 2015-5-9 18:38
1.请教老大,不知 SHOW 0#6 和 SHOW 0:6 有何不同? --- [attachimg]216270[/attachimg] 2: EJECT 弹出的是设备。 自然设备上的盘符都卸载了。 3: 3.假设 ENVI &&A=cdefgh ,有没有办法将 %  详情 回复 发表于 2015-5-9 15:38
回复

使用道具 举报

发表于 2015-5-9 09:40:53 | 显示全部楼层
mdyblog 发表于 2015-5-8 22:21
//(1)
PUTF -dd -bs=10M  D:\X.TXT,0,"%MyName%"#10021|#4
EXEC $D:\X.TXT

刚开始对 内部资源号和目录 的概态不是很理解,通过您的例子,现在明白了

谢谢。^_^
回复

使用道具 举报

 楼主| 发表于 2015-5-9 15:38:04 | 显示全部楼层
527104427 发表于 2015-5-9 05:47
1.请教老大,不知   SHOW 0#6   和   SHOW 0:6   有何不同?
前者未能分配盘符,后者成功。

1.请教老大,不知   SHOW 0#6   和   SHOW 0:6   有何不同?
---
00036.png


2:
EJECT  弹出的是设备。 自然设备上的盘符都卸载了。


3:
3.假设 ENVI &&A=cdefgh ,有没有办法将 %&A% 的值转换为大写?
----------
泵点,26个SED
SET &A=0,a,A,%&A%
SET &A=0,b,B,%&A%
...
SET &A=0,z,Z,%&A%

点评

希望楼主能解答一下我1811楼的疑问  详情 回复 发表于 2015-5-9 17:48
回复

使用道具 举报

发表于 2015-5-9 17:48:34 | 显示全部楼层
mdyblog 发表于 2015-5-9 15:38
1.请教老大,不知   SHOW 0#6   和   SHOW 0:6   有何不同?
---


希望楼主能解答一下我9811楼的疑问
回复

使用道具 举报

 楼主| 发表于 2015-5-9 18:33:47 | 显示全部楼层
小絔小小小 发表于 2015-5-9 02:55
请教一下,当REGI要操作的键值名为

类型为

1:
下载 PECMD2012.1.88.05.61-130810中英.多窗口线程稳定版_win32_64新设计.sfx.7z

SET KNAME=@C:\Windows\system32\notepad.exe,-470
REGI $HKCU\SOFTWARE\PECMD\\%KNAME%=新建文本文档

要点:
1) 奇怪的字符(,=等), 用变量包装一下
2)REGI $,在前面指定类型
3)\\ 来分隔 后面的 【键值名】


2:
READ    %CurDir%\A.TXT,**,&&V
SED &&pos=?:1,EFI,,%&V%
   

你说的BCDEDIT,可以不用临时文件,直接到变量
EXEC*  &&V=*BCDEDIT  /?
MESS. %&V%

点评

刚刚去尝试了一下 REGI $HKCU\Software\Classes\Local Settings\MuiCache\1\AAF68885\\%bdvc%=关闭 BitLocker(&B)[/quote] 这样生成出来的键值名变成了  详情 回复 发表于 2015-5-14 09:17
感谢!刚开始我也尝试过先赋变量 原来是一些细节没处理好  详情 回复 发表于 2015-5-9 19:27
回复

使用道具 举报

 楼主| 发表于 2015-5-9 18:38:03 | 显示全部楼层
527104427 发表于 2015-5-9 05:47
1.请教老大,不知   SHOW 0#6   和   SHOW 0:6   有何不同?
前者未能分配盘符,后者成功。

3.假设 ENVI &&A=cdefgh ,有没有办法将 %&A% 的值转换为大写?
-----------
PECMD2012.1.88.05.61-130810中英.多窗口线程稳定版_win32_64新设计.sfx.7z

ENVI &&A=cdefgh中文ABC
SED &V1=0,.*,\u,%&A%
SED &V2=0,.*,\l,%&A%
MESS. 大写:【%&V1%】 小写:【%&V2%】
//大写:【CDEFGH中文ABC】 小写:【cdefgh中文abc】

\u  转换为大写
\l  转换为小写

点评

多谢老大,太棒了!!  详情 回复 发表于 2015-5-9 19:15
回复

使用道具 举报

发表于 2015-5-9 19:15:50 | 显示全部楼层
mdyblog 发表于 2015-5-9 18:38
3.假设 ENVI &&A=cdefgh ,有没有办法将 %&A% 的值转换为大写?
-----------
PECMD2012.1.88.05.61-130 ...

多谢老大,太棒了!!
回复

使用道具 举报

发表于 2015-5-9 19:27:28 | 显示全部楼层
mdyblog 发表于 2015-5-9 18:33
1:
下载 PECMD2012.1.88.05.61-130810中英.多窗口线程稳定版_win32_64新设计.sfx.7z

感谢!刚开始我也尝试过先赋变量 原来是一些细节没处理好
回复

使用道具 举报

发表于 2015-5-10 09:16:08 | 显示全部楼层
M大,有无办法检测exe文件是32位还是64位?

点评

在PE..后面有两个字节是平台 IMAGE_FILE_MACHINE_I386 0x014c x86 IMAGE_FILE_MACHINE_IA64 0x0200 Intel Itanium IMAGE_FILE_MACHINE_AMD64 0x8664 x64 标志是0x00004550--("PE.."),紧跟后面. [attachi  详情 回复 发表于 2015-5-10 17:37
回复

使用道具 举报

发表于 2015-5-10 15:48:08 | 显示全部楼层
Is it possible to automatically run subroutine (CALL DiskUpdate), when changed disks (the new drive USB-HDD/UDF connected)? // 是否有可能自动运行子程序(CALL DiskUpdate),当改变盘(新的驱动器的USB-HDD/ UDF连接)?

点评

TEAM ENVI^ ENVIMODE=1| ENVI^ FORCELOCAL=1 SET &WM_DEVICECHANGE=0x0219 SET &DBT_DEVICEREMOVECOMPLETE=0x8004 //Device has been removed. SET &DBT_DEVICEARRIVAL=0x8000 //A device has been inserted a  详情 回复 发表于 2015-5-10 17:58
回复

使用道具 举报

 楼主| 发表于 2015-5-10 17:37:27 | 显示全部楼层
本帖最后由 mdyblog 于 2015-5-10 17:38 编辑
ling3882688 发表于 2015-5-10 09:16
M大,有无办法检测exe文件是32位还是64位?


在PE..后面有两个字节是平台
IMAGE_FILE_MACHINE_I386 0x014c  x86
IMAGE_FILE_MACHINE_IA64 0x0200  Intel Itanium
IMAGE_FILE_MACHINE_AMD64 0x8664 x64

标志是0x00004550--("PE.."),紧跟后面.
00036.png


这个更详细:
Ibiamm.jpg

点评

谢M大。  详情 回复 发表于 2015-5-11 10:19
回复

使用道具 举报

 楼主| 发表于 2015-5-10 17:58:21 | 显示全部楼层
weconty 发表于 2015-5-10 15:48
Is it possible to automatically run subroutine (CALL DiskUpdate), when changed disks (the new drive  ...

TEAM ENVI^ ENVIMODE=1| ENVI^ FORCELOCAL=1
SET &WM_DEVICECHANGE=0x0219
SET &DBT_DEVICEREMOVECOMPLETE=0x8004   //Device has been removed.
SET &DBT_DEVICEARRIVAL=0x8000  //A device has been inserted and is now available.
SET &DBT_CONFIGCHANGED=0x0018  //Current configuration has changed.


WIN1

_SUB WIN1,W287H254,盘符监视,
    ENVI @this.Visable=1  //不显示
    ENVI @this.MSG=%WM_DEVICECHANGE%::&&wp,&&lp, OnDriveChange %&wp% %&lp%
_END

_SUB OnDriveChange  // %&wp%  %&lp%
    ///在这里绣花了。。。自己绣吧
    IFEX $%&wp%=%&DBT_DEVICEREMOVECOMPLETE%,   //Device has been removed.
    {*
       THREAD+  MESS Device has been removed.
       EXIT _SUB
    }
    IFEX $%&wp%=%&DBT_DEVICEARRIVAL%,   //A device has been inserted and is now available.
    {*
       THREAD+  MESS A device has been inserted and is now available.
       EXIT _SUB
    }
    IFEX $%&wp%=%&DBT_CONFIGCHANGED%,   //Current configuration has changed.
    {*
       THREAD+  MESS Current configuration has changed.
       EXIT _SUB
    }
_END

点评

请教老大,下面的代码, 1.当切换页面456和789的时候,怎么才能重新设置L7和L8的内容? 2.点击确定以后,怎么L7和L8的值还是空? 将 _SUB Page1,W543H174, 改成 _SUB Page1 * ,W543H174, 也是一样的结  详情 回复 发表于 2015-5-14 05:20
回复

使用道具 举报

发表于 2015-5-11 10:19:48 | 显示全部楼层
mdyblog 发表于 2015-5-10 17:37
在PE..后面有两个字节是平台
IMAGE_FILE_MACHINE_I386 0x014c  x86
IMAGE_FILE_MACHINE_IA64 0x0200 ...

谢M大。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-17 19:54

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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