winPE下的PECMD命令详解
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
■窗口图标: 窗口标题栏和任务栏的图标,格式为<图标文件名#ID>
■窗口类型: [-][#][数值],"-"为无标题栏,"#"为无边框窗口,数值为透明度,数值超99为隐藏窗口。
示例:
◆_SUB DoLoop
◆_SUB Windows1,W360H440,PECMD功能演示,EXEC $使用说明.TXT,%IconFile%#19,20
Personal ---- 我的文档
Programs ---- 程序
SendTo ---- 发送到
Start ---- 开始菜单
Startup ---- 自动运行
QuickLaunch ---- 快速启动栏
SystemDriver ---- 系统分区
SystemRoot ---- 系统文件夹
■提示文字: 可以省略,省略时默认的文字为系统默认的文字提示。
■扩展名: 浏览指定扩展名的文件,省略表示所有文件。
示例:
◆BROW Boot_Ini,C:\Windiws\BOOT.INI,请选择一个文件,INI
◆BROW Tag,*C:\Windiws,请选择一个目录
备注:
※本命令会打开一个文件目录浏览对话窗,让用户浏览磁盘文件目录,用户可选择某个文件或目录。
※_SUB 与 _END 之间的命令(即子过程)只被对应的 CALL 命令执行,主流程会跳过这些命令。
※ _END 命令必须与 _SUB 命令一一匹配,且子过程内不能再定义子过程。
※子过程放在配置文件的任意位置都可以被同一配置文件中的 CALL 命令调用,建议放在文件开始处。
※该命令及 _SUB 命令只能在配置文件中使用,不能在命令行下使用。
功能:在_SUB定义的窗口内建立一个单行文本编辑框。
[BROW] mp;]初始路径],[提示文字],[扩展名]
功能:浏览磁盘文件和目录。
参数:
■变量名: 用于保存浏览结果的变量名。
■初始路径: 为浏览窗口默认选中的文件或目录,省略该参数时定位到系统默认的路径;前导符"*"为浏览目录对话框,前导符"&"为保存文件对话框,省略前导符为打开文件对话框。
◆乘法运算: CALC #Result = 128 * 64 或 CALC Result = %Datum1% * %Datum2%
备注:
※"变量1"或"变量2"可以用 ENVI 命令来直接设置(赋值),也可以是 CALC 命令运算赋值的结果;
※"变量1"或"变量2"没有赋值时,当数值"0"处理;要完成复杂的四则运算可用一系列 CACL 命令完成;
目前,国内winpe系统大都有一个核心软件支持,这就是pecmd.exe(一个命令行解释程序)共有70多条。
一。命令的分类:
1、常用命令行命令
2、窗口控件、子程序命令
(1)、系统变量:
CurDir ---- 当前目录
Desktop ---- 桌面
Favorites ---- 收藏夹
※选择结果将保存在指定的进程环境变量中。示例2可通过环境变量 %Tag% 来引用。
※BROW命令必须在INIT命令之后或在桌面执行。
[CALC]
格式:CALC [#]<变量0><=><变量1><运算符><变量2>
功能:将"变量1"和"变量2"按"运算符"来运算,把运算结果保存在"变量0"中。
※此命令还有一个功能:从本地磁盘中搜索驱动,如"DEVI \Windows,Display"。但此命令未完善,会提示驱动文件对话窗。因此,本功能暂不提供技术支持。
[DISP]
格式:DISP [W水平分辨率 H垂直分辨率] [B颜色深度] [F刷新率] [T等待(毫秒)]
功能:设置显示参数。
示例:
◆DEVI %SystemRoot%\DRV.CAB
备注:
※此命令使用自定的(而非系统的)驱动搜索算法,可快速解压缩可能用到的驱动程序,因此,一个设备可能搜索到多个驱动程序。
※在CAB中,把每个驱动单独放在一个目录中,并保证CAB中INF文件总是在当前目录的最前面,且CAB中的INF文件必须经过处理。建议使用配套程序XCAB来制作。
LOGS MAIN MD5C MENU MESS MOUN NAME NUMK PAGE PATH RAMD REGI RUNS SEND SERV SHEL
SHOW SHUT SITE SUBJ TEAM TEMP TEXT TIPS UPNP
[_SUB]
格式:_SUB <子过程名> 或 _SUB <窗口名称>,<窗口形状>,[窗口标题],[窗口事件],[窗口图标],[窗口类型]
参数:
■分别指定屏幕参数,如果省略则使用原来的设置。
示例:
◆DISP W1024 H768 B32 F70 T5000
备注:
※前三组参数可单独使用,如要设置刷新率为75,使用 DISP F75 即可。
[EDIT]
格式:EDIT <编辑框名称>,<编辑框形状>,[编辑框内容],[编辑框事件],[编辑框类型]
备注:
※子过程名或窗口名的第1个字符不能是"$",命令关键词_SUB与子过程名或窗口名之间必须是1个空格。
※若有多个_SUB命令,这些命令定义的名称不能重复,不能近似,也不能用这些名称设置成环境变量。
※本命令与_END命令必须成对出现,均不能在命令行中使用,其它参照_END命令、CALL命令的说明。
参数:
■前导"#"表示所有变量按 int 型数据来处理,省略该前导表示所有变量按double型数据来处理;
■"变量1"和"变量2"可以是具体数值,也可以是已存在的变量;
■"运算符"目前只支持"+"、"-"、"*"、"/"四种运算。
示例:
◆加法运算: CALC #Sum = 128 + 32 或 CALC Sum = %Datum1% + %Datum2%
3、字符串、字符控制:
LPOS LSTR MSTR RPOS RSTR STRL
4、窗口、子程序标志:
_END _SUB
5、常用命令:
BROW CALC CALL DATE DEVI DISP EJEC ENVI EXEC EXIT FBWF FDIR FDRV
FEXT FILE FIND FONT FORX HELP HKEY HOTK IFEX INIT KILL LINK LIST LOAD LOGO
(2)、常用控件:
ComboBox Button Picture CheckBox HotKey PopupMenu Progress BarGroup Static Timer Radio
CHEK Menu LABE EDIT GROU IMAG ITEM MEMO PBAR TIME RADI
※若省略"变量名"时,结果保存在环境变量%CurDate%中,示例的结果可能是"2008-8-8|5|20:8:8"。
[DEVI]
格式:DEVI [$]<CAB 路径>
功能:从 CAB 文件或指定的文件夹中查找(并安装)驱动程序。
参数:
■指定CAB文件路径。前导"$"表示解压缩驱动文件后安装驱动,否则不安装驱动。
※可用"ENVI @复选框名称.Enable=数值"来设置复选框可用状态,数值0为禁用状态;非0为可用状态。
[DATE]
格式:DATE [变量名] 功能:返回系统当前日期和时间
参数:
■变量名 用于保存系统当前日期和时间的变量名称
示例:
◆DATE SysDate
备注:
※返回结果以"年-月-日|星期|时:分:秒"的形式保存在指定的变量中,要取出其中的"日期"或"时间",请用 PECMD 的 字符串处理命令(LPOS、RPOS、LSTR、MSTR、RSTR)来处理;
※CACL命令按 double 型变量来处理数据时,最多保留4位小数,要比较数值大小可用IFEX命令来判断。
[CALL]
格式:CALL <$DLL名>,[函数],[[#]参数1],[[#]参数2],[[#]参数3],[[#]参数4]或CALL <过程>或CALL <@窗口>
功能:调用DLL函数 或 调用子过程。
备注:
※CHEK命令必须位于_SUB命令和_END命令之间,其它位置的CHEK命令无效,参照_SUB、CALL命令说明。
※环境变量: %复选框名称% 为复选框标题,设置标题,可用 "ENVI @复选框名称=复选框标题" 来设置。
※可用"ENVI @复选框名称.Check=数值"来设置复选框钩选状态,数值0为未钩选状态;非0为钩选状态。
※INF文件解压缩到"%SystemRoot%\INF"目录,SYS文件解压缩到%SystemRoot%\SYSTEM32\DRIVERS目录,其它文件解压缩到%SystemRoot%\SYSTEM32目录。
※如果其它文件需要解压缩到特定目录中,可以在文件名中使用"#"代替目录分隔符,如文件"SYSTEM32#WBEM#MOF#XXX.MOF"将会被解压缩到"%SystemRoot%\SYSTEM32\WBEM\MOF\XXX.MOF"。
■省略前导"$"表示调用子过程,参数为子过程名称。
示例:
◆调用DLL函数 : CALL $SHELL32.DLL,DllInstall,#1,U
◆调用窗口过程: CALL @Window1
◆调用子过程: FIND MEM>127,CALL EXPLORER_SHELL!CALL CMD_SHELL
[CHEK]
格式:CHEK <复选框名称>,<复选框形状>,[复选框标题],[复选框事件],[复选框状态] 功能:在_SUB定义的窗口内建立一个复选框控件。
参数:
■复选框名称: 字符串,复选框的名称应是唯一的,不能与其它控件名称或环境变量名称同名。
■复选框形状: 复选框位置和大小,格式为<L左T上W宽H高>,左上宽高均为数值。
功能:定义子过程或定义一个窗口。
参数:
■子过程名: 字符串。
■窗口名称: 字符串,窗口名称应是唯一的,不能与其它控件名称或环境变量名称同名。
■窗口标题: 文字。
■窗口形状: 窗口位置和大小,格式为<L左T上W宽H高>,左上宽高均为数值,省略"左上"时窗口居中。
■窗口事件: 关闭窗口时执行的命令,必须是 PECMD.EXE 支持的命令。
参数:
■前导"$"表示调用DLL函数,指定DLL路径、函数名和参数。省略函数名,将调用"DllRegisterServer",参数默认为UNICODE字符串,如果以"#"前导则表示整数;最多支持四个函数参数。
■前导"@"表示调用由_SUB命令定义的窗口,不要在_SUB命令定义的窗口内执行CALL @调用另一个窗口。
※要设置窗口的标题,可以使用 "ENVI @窗口名称=窗口标题" 来设置 ,参照 ENVI 命令的说明。
[_END]
格式:_END
功能:结束子过程或结束窗口定义。
参数:
■无
示例:
◆_END
备注:
※定义子过程的 _SUB 命令和 _END 命令必须单独一行。即:FIND、IFEX、TEAM 命令内不能定义子过程。
■复选框标题: 复选框上的文字,用于描述复选框的功能或说明。
■复选框事件: 点击该复选框时执行的命令,必须是 PECMD 支持的有效命令。
■复选框状态: 数字,1或-1为钩选状态,0,2或-2为没有钩选,小于0为灰色不可用状态。
示例:
◆CHEK Check1,L180T336W100H20,可写挂载,,1
备注:
※调用DLL函数 : DLL中的函数必须以 STDCALL 方式导出(不明白什么意思的话,就当没任何问题)。
※调用窗口过程: 用CALL 的前导"@"调用窗口时,该CALL命令后的命令将暂停执行,直至窗口关闭。
※调用子过程: CALL命令只能调用同一配置文件内的子过程,CALL命令调用子过程的功能不能在命令行中使用,其它参照_SUB和_END命令的说明。
■窗口类型: [-][#][数值],"-"为无标题栏,"#"为无边框窗口,数值为透明度,数值超99为隐藏窗口。
示例:
◆_SUB DoLoop
◆_SUB Windows1,W360H440,PECMD功能演示,EXEC $使用说明.TXT,%IconFile%#19,20
Personal ---- 我的文档
Programs ---- 程序
SendTo ---- 发送到
Start ---- 开始菜单
Startup ---- 自动运行
QuickLaunch ---- 快速启动栏
SystemDriver ---- 系统分区
SystemRoot ---- 系统文件夹
■提示文字: 可以省略,省略时默认的文字为系统默认的文字提示。
■扩展名: 浏览指定扩展名的文件,省略表示所有文件。
示例:
◆BROW Boot_Ini,C:\Windiws\BOOT.INI,请选择一个文件,INI
◆BROW Tag,*C:\Windiws,请选择一个目录
备注:
※本命令会打开一个文件目录浏览对话窗,让用户浏览磁盘文件目录,用户可选择某个文件或目录。
※_SUB 与 _END 之间的命令(即子过程)只被对应的 CALL 命令执行,主流程会跳过这些命令。
※ _END 命令必须与 _SUB 命令一一匹配,且子过程内不能再定义子过程。
※子过程放在配置文件的任意位置都可以被同一配置文件中的 CALL 命令调用,建议放在文件开始处。
※该命令及 _SUB 命令只能在配置文件中使用,不能在命令行下使用。
功能:在_SUB定义的窗口内建立一个单行文本编辑框。
[BROW] mp;]初始路径],[提示文字],[扩展名]
功能:浏览磁盘文件和目录。
参数:
■变量名: 用于保存浏览结果的变量名。
■初始路径: 为浏览窗口默认选中的文件或目录,省略该参数时定位到系统默认的路径;前导符"*"为浏览目录对话框,前导符"&"为保存文件对话框,省略前导符为打开文件对话框。
◆乘法运算: CALC #Result = 128 * 64 或 CALC Result = %Datum1% * %Datum2%
备注:
※"变量1"或"变量2"可以用 ENVI 命令来直接设置(赋值),也可以是 CALC 命令运算赋值的结果;
※"变量1"或"变量2"没有赋值时,当数值"0"处理;要完成复杂的四则运算可用一系列 CACL 命令完成;
目前,国内winpe系统大都有一个核心软件支持,这就是pecmd.exe(一个命令行解释程序)共有70多条。
一。命令的分类:
1、常用命令行命令
2、窗口控件、子程序命令
(1)、系统变量:
CurDir ---- 当前目录
Desktop ---- 桌面
Favorites ---- 收藏夹
※选择结果将保存在指定的进程环境变量中。示例2可通过环境变量 %Tag% 来引用。
※BROW命令必须在INIT命令之后或在桌面执行。
[CALC]
格式:CALC [#]<变量0><=><变量1><运算符><变量2>
功能:将"变量1"和"变量2"按"运算符"来运算,把运算结果保存在"变量0"中。
※此命令还有一个功能:从本地磁盘中搜索驱动,如"DEVI \Windows,Display"。但此命令未完善,会提示驱动文件对话窗。因此,本功能暂不提供技术支持。
[DISP]
格式:DISP [W水平分辨率 H垂直分辨率] [B颜色深度] [F刷新率] [T等待(毫秒)]
功能:设置显示参数。
示例:
◆DEVI %SystemRoot%\DRV.CAB
备注:
※此命令使用自定的(而非系统的)驱动搜索算法,可快速解压缩可能用到的驱动程序,因此,一个设备可能搜索到多个驱动程序。
※在CAB中,把每个驱动单独放在一个目录中,并保证CAB中INF文件总是在当前目录的最前面,且CAB中的INF文件必须经过处理。建议使用配套程序XCAB来制作。
LOGS MAIN MD5C MENU MESS MOUN NAME NUMK PAGE PATH RAMD REGI RUNS SEND SERV SHEL
SHOW SHUT SITE SUBJ TEAM TEMP TEXT TIPS UPNP
[_SUB]
格式:_SUB <子过程名> 或 _SUB <窗口名称>,<窗口形状>,[窗口标题],[窗口事件],[窗口图标],[窗口类型]
参数:
■分别指定屏幕参数,如果省略则使用原来的设置。
示例:
◆DISP W1024 H768 B32 F70 T5000
备注:
※前三组参数可单独使用,如要设置刷新率为75,使用 DISP F75 即可。
[EDIT]
格式:EDIT <编辑框名称>,<编辑框形状>,[编辑框内容],[编辑框事件],[编辑框类型]
备注:
※子过程名或窗口名的第1个字符不能是"$",命令关键词_SUB与子过程名或窗口名之间必须是1个空格。
※若有多个_SUB命令,这些命令定义的名称不能重复,不能近似,也不能用这些名称设置成环境变量。
※本命令与_END命令必须成对出现,均不能在命令行中使用,其它参照_END命令、CALL命令的说明。
参数:
■前导"#"表示所有变量按 int 型数据来处理,省略该前导表示所有变量按double型数据来处理;
■"变量1"和"变量2"可以是具体数值,也可以是已存在的变量;
■"运算符"目前只支持"+"、"-"、"*"、"/"四种运算。
示例:
◆加法运算: CALC #Sum = 128 + 32 或 CALC Sum = %Datum1% + %Datum2%
3、字符串、字符控制:
LPOS LSTR MSTR RPOS RSTR STRL
4、窗口、子程序标志:
_END _SUB
5、常用命令:
BROW CALC CALL DATE DEVI DISP EJEC ENVI EXEC EXIT FBWF FDIR FDRV
FEXT FILE FIND FONT FORX HELP HKEY HOTK IFEX INIT KILL LINK LIST LOAD LOGO
(2)、常用控件:
ComboBox Button Picture CheckBox HotKey PopupMenu Progress BarGroup Static Timer Radio
CHEK Menu LABE EDIT GROU IMAG ITEM MEMO PBAR TIME RADI
※若省略"变量名"时,结果保存在环境变量%CurDate%中,示例的结果可能是"2008-8-8|5|20:8:8"。
[DEVI]
格式:DEVI [$]<CAB 路径>
功能:从 CAB 文件或指定的文件夹中查找(并安装)驱动程序。
参数:
■指定CAB文件路径。前导"$"表示解压缩驱动文件后安装驱动,否则不安装驱动。
※可用"ENVI @复选框名称.Enable=数值"来设置复选框可用状态,数值0为禁用状态;非0为可用状态。
[DATE]
格式:DATE [变量名] 功能:返回系统当前日期和时间
参数:
■变量名 用于保存系统当前日期和时间的变量名称
示例:
◆DATE SysDate
备注:
※返回结果以"年-月-日|星期|时:分:秒"的形式保存在指定的变量中,要取出其中的"日期"或"时间",请用 PECMD 的 字符串处理命令(LPOS、RPOS、LSTR、MSTR、RSTR)来处理;
※CACL命令按 double 型变量来处理数据时,最多保留4位小数,要比较数值大小可用IFEX命令来判断。
[CALL]
格式:CALL <$DLL名>,[函数],[[#]参数1],[[#]参数2],[[#]参数3],[[#]参数4]或CALL <过程>或CALL <@窗口>
功能:调用DLL函数 或 调用子过程。
备注:
※CHEK命令必须位于_SUB命令和_END命令之间,其它位置的CHEK命令无效,参照_SUB、CALL命令说明。
※环境变量: %复选框名称% 为复选框标题,设置标题,可用 "ENVI @复选框名称=复选框标题" 来设置。
※可用"ENVI @复选框名称.Check=数值"来设置复选框钩选状态,数值0为未钩选状态;非0为钩选状态。
※INF文件解压缩到"%SystemRoot%\INF"目录,SYS文件解压缩到%SystemRoot%\SYSTEM32\DRIVERS目录,其它文件解压缩到%SystemRoot%\SYSTEM32目录。
※如果其它文件需要解压缩到特定目录中,可以在文件名中使用"#"代替目录分隔符,如文件"SYSTEM32#WBEM#MOF#XXX.MOF"将会被解压缩到"%SystemRoot%\SYSTEM32\WBEM\MOF\XXX.MOF"。
■省略前导"$"表示调用子过程,参数为子过程名称。
示例:
◆调用DLL函数 : CALL $SHELL32.DLL,DllInstall,#1,U
◆调用窗口过程: CALL @Window1
◆调用子过程: FIND MEM>127,CALL EXPLORER_SHELL!CALL CMD_SHELL
[CHEK]
格式:CHEK <复选框名称>,<复选框形状>,[复选框标题],[复选框事件],[复选框状态] 功能:在_SUB定义的窗口内建立一个复选框控件。
参数:
■复选框名称: 字符串,复选框的名称应是唯一的,不能与其它控件名称或环境变量名称同名。
■复选框形状: 复选框位置和大小,格式为<L左T上W宽H高>,左上宽高均为数值。
功能:定义子过程或定义一个窗口。
参数:
■子过程名: 字符串。
■窗口名称: 字符串,窗口名称应是唯一的,不能与其它控件名称或环境变量名称同名。
■窗口标题: 文字。
■窗口形状: 窗口位置和大小,格式为<L左T上W宽H高>,左上宽高均为数值,省略"左上"时窗口居中。
■窗口事件: 关闭窗口时执行的命令,必须是 PECMD.EXE 支持的命令。
参数:
■前导"$"表示调用DLL函数,指定DLL路径、函数名和参数。省略函数名,将调用"DllRegisterServer",参数默认为UNICODE字符串,如果以"#"前导则表示整数;最多支持四个函数参数。
■前导"@"表示调用由_SUB命令定义的窗口,不要在_SUB命令定义的窗口内执行CALL @调用另一个窗口。
※要设置窗口的标题,可以使用 "ENVI @窗口名称=窗口标题" 来设置 ,参照 ENVI 命令的说明。
[_END]
格式:_END
功能:结束子过程或结束窗口定义。
参数:
■无
示例:
◆_END
备注:
※定义子过程的 _SUB 命令和 _END 命令必须单独一行。即:FIND、IFEX、TEAM 命令内不能定义子过程。
■复选框标题: 复选框上的文字,用于描述复选框的功能或说明。
■复选框事件: 点击该复选框时执行的命令,必须是 PECMD 支持的有效命令。
■复选框状态: 数字,1或-1为钩选状态,0,2或-2为没有钩选,小于0为灰色不可用状态。
示例:
◆CHEK Check1,L180T336W100H20,可写挂载,,1
备注:
※调用DLL函数 : DLL中的函数必须以 STDCALL 方式导出(不明白什么意思的话,就当没任何问题)。
※调用窗口过程: 用CALL 的前导"@"调用窗口时,该CALL命令后的命令将暂停执行,直至窗口关闭。
※调用子过程: CALL命令只能调用同一配置文件内的子过程,CALL命令调用子过程的功能不能在命令行中使用,其它参照_SUB和_END命令的说明。