┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ 欢迎使用 PECMD2012 - WinPE Commander,功能强大的 WinPE 命令解释工具! 【精简说明】 ┃ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃PECMD - XCMD V2.2补充完善版,在XCMD V2.2基础上修改完善了 CALL、DISP、LOGO、LOGS 等8条命令的参数和功能。 ┃ ┃PECMD - XCMD V2.2补充完善版,在XCMD V2.2基础上增加了 FONT、HOTK、FBWF 等21条命令,在此向Yonsm表示感谢! ┃ ┃PECMD2012官方网址:http://mdyblog.blog.163.com ┃ ┃ http://mdyblog.blog.163.com/blog/static/106150119201202591855298/ ┃ ┃PECMD2012 NonCopyRight,任何个人和组织(含商业组织)可随意免费使用,2进制编辑...,技术支持可咨询作者 ┃ ┃帮助文档更新整理排版纠错--by988668 @2012年5月10日(与诸位共勉,谢谢!) ┃ ┣━┯━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃重│在CMD批处理文件中执行WinCMD命令时,若要使用PECMD内置的环境变量,请用双对百分号将其包围,%%Desktop%% ┃ ┃要│在CMD窗口或WinGUI程序中执行WinCMD命令时,若要使用WinCMD内置的环境变量,只需一对百分号即可,%Desktop%┃ ┃说│表示%而不是变量标识用%% 。内置随机数变量%RANDOM%。%PECMDVER% 实时当前目录:%_CD%;当前PID:%&__PID% ┃ ┃明│路径变量写法标准:盘符:\%路径变量%\%路径变量%,命令器不会自动添加“:”与“\”,请注意! ┃ ┃ │语法标准1:ABCD [磁盘分区],[盘符字母],[等待时间]参数为空也不能忽略参数间的逗号! ┃ ┃ │语法标准2:ABCD [磁盘分区][,盘符字母][,等待时间]参数为空也可逆向忽略参数前的逗号! ┃ ┃注│▲PECMD2012:命令行默认关闭注释(不是LOAD执行);脚本默认开启注释(LOAD执行)可用 NOTE或 COME切换。 ┃ ┃意│下级可直接引用上级局部变量的值。不推荐用环境变量,因为容易引起逻辑结构混乱! ┃ ┃▲│▲除特殊情况外,请尽可能不要用单行嵌套命令语句的写法,应尽量使用标准分行的写法,这样方便阅读和理解。┃ ┃ │▲LOAD "X:\Program Files\a.ini" 引号一定不能省,因为本LOAD 可带参数。参见LOAD备注 ┃ ┃ │▲实验本命令,请在PECMDEDIT或PECMD命令行;不要在CMD命令行。 ┃ ┃ │▲如果在命令行中使用,且参数中带有">"或"|"或"&"或"^",则命令后的参数必须用引号包围,否则将会被认为 ┃ ┃ │ 是重定向或管道操作符等。或在这些字符前面加个^。本程序支持引号参数解析。 ┃ ┣━┷┯━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃版号│☆PECMD v2012.1.70.1 fix00 X86U ┃ ┣━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │◎短小精干,运行迅速;支持常规扩展设置命令;内置多条命令,功能极其强大;支持调用外部EXE和DLL函数;┃ ┃特点│◎支持格式统一的命令行参数和配置文件,登录操作完全使用INI文件配置,修改INI就能完全控制登录步骤; ┃ ┃ │◎支持模块化、结构化和脚本化的配置文件;配置文件支持整行注释和行后注释,同时也支持空格缩进书写。 ┃ ┣━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │◎使用命令行参数,例如:要设置环境变量,执行"PECMD.EXE ENVI $PPPoE=OK"即可。 ┃ ┃ │◎使用配置文件,例如:"PECMD.EXE LOAD %SystemRoot%\PECMD.INI"。 ┃ ┃ │◎不用命令行参数,直接执行本程序,将显示帮助信息。 ┃ ┃ │◎命令参数支持环境变量解析(如"%TEMP%\X.TXT");命令不区分大小写;尖括号"<>"内的参数表示必须输入,方┃ ┃使用│ 括号"[]"内的表示可以省略。 ┃ ┃ │◎通常情况下,您只需要编辑一个配置文件 PECMD.INI 放在磁盘的某个位置,里面列出需要执行的命令。然后 ┃ ┃ │ 在 WinPE 启动的时候执行"PECMD.EXE MAIN INI文件名(含路径,支持环境变量)"即可。 ┃ ┗━━┷━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ WinCMD - 命令解释程序,支持创建窗口及以下窗口控件 ┃ ┣━━━━━━━━━━━━━┯━━━━━━━━━━━━┯━━━━━━━━━━━━━┯━━━━━━━━━━━┫ ┃ComboBox 下拉选择框│Button 按钮控件│Picture 图像区域控件│CheckBox 复选框控件┃ ┃Edit 编辑框控件│HotKey 系统热键│PopupMenu 托盘图标菜单│Radio 单选框控件┃ ┃ProgressBar 进度条控件│Group 分组面板│Static 文本标签控件│Timer 定时器控件┃ ┗━━━━━━━━━━━━━┷━━━━━━━━━━━━┷━━━━━━━━━━━━━┷━━━━━━━━━━━┛ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ WinCMD - Windows Commander,内置以下环境变量的支持 ┃ ┣━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━┫ ┃CurDir &CurDir 配置文件目录│CurFile &CurFile 配置文件名称│CurDrv &CurDrv 配置文件驱动器┃ ┃Favorites 收藏夹全路径│IECache IE临时目录名│MyName 自身文件名┃ ┃Personal 我的文档目录│Programs 程序菜单目录│SendTo 发送到目录┃ ┃StartMenu 开始菜单目录│Startup 启动菜单目录│QuickLaunch 快速启动栏┃ ┃Desktop 桌面目录名 │ │ ┃ ┗━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━┫ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ PECMD - WinPE Commander 命令解释及说明 ┃ ┣━━┯━━┯━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'_END' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│_END ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│结束子过程,并继续执行调用该子过程的 CALL 命令的下一条命令。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │参数│■无。 ┃ ┃_END├──┼──────────────────────────────────────────────┨ ┃ │示例│_END ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※定义子过程的 _SUB 命令和 _END 命令必须单独一行。即 FIND、IFEX、TEAM 命令内不能定义子过程。┃ ┃ │ │※ _SUB 与 _END 之间的命令(即子过程)只被对应的 CALL 命令执行,主流程会跳过这些命令。 ┃ ┃ │ │※ _END 命令必须与 _SUB 命令一一匹配,且子过程内不能再定义子过程。 ┃ ┃ │ │※子过程放在配置文件的任意位置都可以被同一配置文件中的 CALL 命令调用,建议放在文件开始处。 ┃ ┃ │ │※该命令只能在配置文件中使用,不能在命令行下使用。 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'_SUB' '类' '窗口' '函数' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│_SUB <子过程名> 或 _SUB <窗口名称>,<窗口形状>,[窗口标题],[事件],[窗口图标],[窗口类型] ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│定义类或定义子函数(过程)或定义一个窗口。可嵌套定义子类 ┃ ┃ 类 ├──┼──────────────────────────────────────────────┨ ┃ │参数│■子过程名: 字符串。 ┃ ┃ 窗 │ │■窗口名称: 字符串,窗口名称应是唯一的,不能与其它控件名称或环境变量名称同名。 ┃ ┃ 口 │ │■窗口标题: 文字。 ┃ ┃ │ │■窗口形状: 窗口位置和大小,格式为,左上宽高均为数值,省略"左上"时窗口居中。 ┃ ┃ 函 │ │■事件: 关闭窗口时执行的命令,必须是 WinCMD.EXE 支持的命令。 ┃ ┃ 数 │ │■窗口图标: 窗口标题栏和任务栏的图标,格式为<图标文件名#ID> ┃ ┃ │ │■窗口类型: [-][#][数值],"-"为无标题栏,"#"为无边框窗口,数值1-98为透明度,100为隐藏窗口 ┃ ┃_SUB├──┼──────────────────────────────────────────────┨ ┃ │示例│_SUB DoLoop 或 _SUB Windows1,W360H440,WinCMD功能演示,EXEC $使用说明.TXT,%IconFile%#19,20 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※子函数名或窗口名的第1个字符不能是"$",命令关键词_SUB与子过程名或窗口名之间必须是1个空格。 ┃ ┃ │ │※名称的第1个字符为&表示是局部名称,线程中不冲突。也可进入线程局部模式达到。 ┃ ┃ │ │※若有多个_SUB命令,这些命令定义的名称不能重复,不能近似,也不能用这些名称设置成环境变量。 ┃ ┃ │ │※本命令与_END命令必须成对出现,均不能在命令行中使用,其它参照_END命令、CALL命令的说明。 ┃ ┃ │ │※要设置窗口的标题,可以使用 "ENVI @窗口名称=窗口标题" 来设置 ,参照 ENVI 命令的说明。 ┃ ┃ │ │※当"窗口类型"设置了透明度后(数值不为0),则 IMAG 控件无法显示 GIF 动画。 ┃ ┃ │ │※没有标题的窗口,可以按住ALT键,按住鼠标左键拖动窗口。 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'BROW' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│BROW <变量名称>,[[*|&]初始路径],[提示文字],[扩展名称],[附加标志] ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│浏览磁盘文件和目录。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │参数│■变量名称: 用于保存浏览结果的变量名。 ┃ ┃ │ │■初始路径: 为浏览窗口默认选中的文件或目录,省略该参数时定位到系统默认的路径;前导符"*"为浏 ┃ ┃ │ │ 览目录对话框,前导符"&"为保存文件对话框,省略前导符为打开文件对话框。 ┃ ┃ │ │■提示文字: 可以省略,省略时默认的文字为系统默认的文字提示。 ┃ ┃ │ │■扩展名称: 浏览指定扩展名的文件,省略表示所有文件。 ┃ ┃BROW│ │■附加标志: 浏览目录对话框界面风格设置,默认为"无[编辑框],有[新建文件夹]按钮,不显示文件",┃ ┃ │ │ 有编辑框标志为0x10,无新建文件夹按钮标志为0x200,显示文件标志为0x4000,若要同时 ┃ ┃ │ │ 设置多种风格,请使用这些标志值的"或"运算值或这些标志值之和。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│BROW Boot_Ini,C:\BOOT.INI,请选择一个文件,INI 或 BROW Tag,*C:\Windows,请选择一个目录 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※目录浏览框"有编辑框、无新建文件夹按钮、显示文件"三项标志之和的16进制值为0x4210。 ┃ ┃ │ │※本命令会打开一个文件目录浏览对话窗,让用户浏览磁盘文件目录,用户可选择某个文件或目录。 ┃ ┃ │ │※选择结果将保存在指定的进程环境变量中。示例2可通过环境变量 %Tag% 来引用。 ┃ ┃ │ │※BROW命令一般在INIT命令之后或在桌面执行。 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'CALC' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│CALC [#]变量=表达式[#小数位数] ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│将表达式的运算结果保存在"变量"中。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │参数│■前导"#"表示所有变量按 int64 型数据来处理,省略该前导表示所有变量按double型数据来处理; ┃ ┃ │ │■表达式中可以是具体数值,也可以是已存在的变量; ┃ ┃CALC│ │■支持的运算符号: 或"|",与"&";加"+",减"-";乘"*",除"/";模"%",幂"^",级别依次优先,和刮号 ┃ ┃ │ │ ()[]{}。项数不限。 数据(包刮浮点数)支持TGMKS后缀。K=1024 S=512 ┃ ┃ │ │■后缀"#" : 表示运算结果按double型数据来处理时,保留的小数位数,默认尽可能多,最多16位; ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│◆ CALC #Sum = 128 + 32*22 或 CALC Sum = %Datum1% + %Datum2% * 32 ┃ ┃ │ │◆ CALC #Result = 128 * ( 64 +66 )或 CALC Result = %Datum1% * ( %Datum2% + 12 ) ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※"变量1"或"变量2"可以用 ENVI 命令来直接设置(赋值),也可以是 CALC 命令运算赋值的结果; ┃ ┃ │ │※"变量1"或"变量2"没有赋值时,当数值"0"处理;要完成复杂的四则运算可用一系列 CACL 命令完成; ┃ ┃ │ │※CACL命令按 double 型变量来处理数据时,最多保留4位小数,要比较数值大小可用IFEX命令来判断。 ┃ ┃ │ │※16位10进位以内的数据,浮点/整数处理没有任何区别。±9007199254740991 ┃ ┃ │ │※为了使用%方便,%n%*等参数禁止。需要的先用ENVI转一下。 ┃ ┃ │ │※获取随机数:%RANDOM%直接引用,为每次都不同的 64 位正整数。 也可以 RAND 变量名等效于: ┃ ┃ │ │ 0----9: ┃ ┃ │ │ CALC #R0_9=%RANDOM% % 10 或 RSTR R0_9=1,%RANDOM% ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'CALL' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│CALL <$DLL路径>[,函数名称][,[#]参数1][,[#]参数2][,[#]参数3][,[#]参数4]...[,[#]参数8] ┃ ┃ │ │CALL [前导]<子过程名/窗口名称> [命令行参数] ┃ ┃ │ │CALL [前导]<窗口类名:窗口实名> [命令行参数] //生成类的实例 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│调用DLL函数 或 调用子过程。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │参数│※前导"$"表示调用DLL函数。如果函数名称为* ,那么只是DLL预加载(后面调用更快),多次调用安全。 ┃ ┃ │ │ 指定DLL路径、函数名和参数。如果省略函数名,将调用"DllRegisterServer",参数默认为UNICODE字 ┃ ┃CALL│ │ 符串,如果以"#"前导则表示整数;最多支持8个函数参数。 ┃ ┃ │ │※省略前导"$"表示调用子过程,参数为子过程名称。 ┃ ┃ │ │■函数参数格式:子过程和窗口中%0,%1,%2,...%n为子过程名/窗口名称、第一、第二...第n个参数,┃ ┃ │ │ %#为参数个数。%*为%1起全部。%~0,%~1,%~2,...%~n 就是去掉最外面的双引号,%@为%0起全部。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│※调用DLL函数: CALL $SHELL32.DLL,DllInstall,#1,U ┃ ┃ │ │※调用子过程 : FIND MEM>127,CALL EXPLORER_SHELL!CALL CMD_SHELL ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※调用DLL函数: DLL中的函数必须以 STDCALL 方式导出(不明白什么意思的话,就当没任何问题)。 ┃ ┃ │ │※调用子过程 : CALL命令只能调用同一配置文件内的子过程,CALL命令调用子过程的功能不能在命令行 ┃ ┃ │ │ 中使用,其它参照_SUB和_END命令的说明。 ┃ ┃ │ │※格式2/3中某一参数如果含有空字符,需要双引号刮起来。否则会被分断。 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'CHEK' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│CHEK [-right] [-center] [*] <复选框名称>,<复选框形状>,[复选框标题],[复选框事件],[复选框状态]┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│在窗口内建立一个复选框控件。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │参数│ <复选框名称>前的 * 表示退出代码块或函数时自动回收。 ┃ ┃ │ │■复选框名称: 字符串,复选框的名称应是唯一的,不能与其它控件名称或环境变量名称同名。 ┃ ┃ │ │■复选框形状: 复选框位置和大小,格式为,左上宽高均为数值。 ┃ ┃ │ │■复选框标题: 复选框上的文字,用于描述复选框的功能或说明。 ┃ ┃CHEK│ │■复选框事件: 点击该复选框时执行的命令,必须是 WinCMD 支持的有效命令。 ┃ ┃ │ │■复选框状态: 数字,1或-1为钩选状态,0,2或-2为没有钩选,小于0为灰色不可用状态,±16不可见。┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│CHEK Check1,L180T336W100H20,可写挂载,,1 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※该命令一般位于_SUB命令和_END命令之间,参照_SUB、CALL命令说明。 ┃ ┃ │ │※环境变量: %复选框名称% 为复选框标题,设置标题,可用 "ENVI @复选框名称=复选框标题" 来设置。┃ ┃ │ │※可用"ENVI @复选框名称.Check=数值"来设置复选框钩选状态,数值0为未钩选状态;非0为钩选状态。 ┃ ┃ │ │※可用"ENVI @复选框名称.Enable=数值"来设置复选框可用状态,数值0为禁用状态;非0为可用状态。 ┃ ┃ │ │※可用"ENVI @复选框名称.Visable=数值"来设置可见状态;0为不可见,非0为可见。 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'CMPS' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│CMPS [-f] [-m] [-u] 源文件 [,] 压缩文件 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃CMPS│功能│压缩文件。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │参数│■-f 表示保留资源文件的格式标志,可要可不要。-m不加密。-u解压 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│CMPS A.wcs A.wcz ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│压缩文件可以直接load运行,或作为内置脚本,图标,位图。大小不限。加密文件可运行不可解压。 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'DEVI' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│DEVI [*rescan] [*norescan] [*devclass:DevClass] [$][,匹配级别[,解压目录]] ┃ ┃ │ │DEVI [*rescan] [*norescan] [*nocheck] [,DevClass] ┃ ┃ │ │DEVI [*rescan] [*norescan] <含有INF子目录的目录>[,DevClass] ┃ ┃ │ │DEVI $[,安装节][,操作码] <===标准安装模式, 操作码默认132 ┃ ┃ │ │DEVI [*rescan] [*norescan] *extract ,[匹配级别],解压目录 <===纯解压 ┃ ┃ │ │DEVI *rescan <===重新扫描硬件改动 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│从 CAB 文件或INF文件或指定的文件夹中查找(并安装)驱动程序。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │参数│■指定CAB文件路径。CAB前导"$"表示解压缩驱动文件后安装驱动,否则不安装驱动; ┃ ┃ │ │■INF前导"$"表示执行拷贝的标准模式;否则只加载设备驱动(可能因找不到设备而不加载); ┃ ┃ │ │■*nocheck:不检查硬件ID强制安装;*rescan:重新扫描硬件改动(NT6非强制安装时默认),可单用; ┃ ┃ │ │■*norescan:禁止重新扫描硬件改动。 ┃ ┃ │ │■匹配级别:设备ID的以&分隔的节数,默认2。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│DEVI %SystemRoot%\DRV.CAB 或 DEVI MyInf*.INF 或 DEVI %SystemRoot%\Inf\*.INF ┃ ┃ │ │DEVI %SystemRoot% ┃ ┃ │ │DEVI *extract myCab.CAB,,D:\ABC ┃ ┃ │ │DEVI *dummy *sub D:\ABC //打印D:\ABC下所有INF的DevClass到LOGS。 ┃ ┃ │ │DEVI *sub D:\ABC,Net //D:\ABC下寻找并安装网络驱动。 ┃ ┃ │ │DEVI *devclass:Net $D:\DRV.CAB,,%TEMP% //D:\DRV.CAB中寻找并安装网络驱动。 ┃ ┃ │ │DEVI *devid:PCI\VEN_8086&DEV_1229 $D:\DRV.CAB,,%TEMP% //网卡Intel8255x ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃DEVI│备注│※此命令使用自定的(而非系统的)驱动搜索算法,可快速解压缩可能用到的驱动程序,因此,一个设备可┃ ┃ │ │ 能搜索到多个驱动程序。 ┃ ┃ │ │※在CAB中,把每个驱动单独放在一个目录中,并保证CAB中INF文件总是在当前目录的最前面,且CAB中的┃ ┃ │ │ INF文件必须经过处理。建议使用配套程序XCAB来制作。 ┃ ┃ │ │※驱动文件是CAB时,NT5.x系统中,前导'$'和[释放目录]不能同时设置,但可同时省略。 ┃ ┃ │ │ 省略前导'$'时只解压文件;省略[释放目录]时,将进行驱动匹配解压,INF文件 ┃ ┃ │ │ 被解压到 "%WinDir%\INF" 目录,SYS文件解压到 "%WinDir%\SYSTEM32\DRIVERS" 目录,其它文件解压┃ ┃ │ │ 到" %WinDir%\SYSTEM32" 目录。 ┃ ┃ │ │※驱动文件是CAB压缩包时,NT6.x系统中。有前导'$'[释放目录]默认为%TEMP%下一个临时目录,安装后 ┃ ┃ │ │ 自动删除。有释放目录'$'可省。将CAB压缩文件按目录结构解压到指定目录中,当有前导'$'时表示解 ┃ ┃ │ │ 压后安装目标目录的驱动文件。如果不安装,需要指定*extract。 ┃ ┃ │ │※如果其它文件需要解压缩到特定目录中,可以在文件名中使用"#"代替目录分隔符,如文件 ┃ ┃ │ │ "SYSTEM32#WBEM#MOF#XXX.MOF"将会被解压缩到"%SystemRoot%\SYSTEM32\WBEM\MOF\XXX.MOF"。 ┃ ┃ │ │※NT6.x系列WinPE中,用DEVI命令安装"%WinDir%\INF"的INF文件将不进行硬件ID匹配检查(直接安装)。 ┃ ┃ │ │※此命令还有一个功能:从本地磁盘中搜索驱动,如"DEVI \Windows,Display"。但此命令未完善,会提 ┃ ┃ │ │ 示驱动文件对话框。因此,本功能暂不提供技术支持。 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'DISP' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│DISP [W水平分辨率 H垂直分辨率] [B颜色深度] [F刷新率] [T等待(毫秒)] ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│设置显示参数。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃DISP│参数│■分别指定屏幕参数,如果所有参数都省略则自动设置。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│DISP W1024 H768 B32 F70 T5 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│前三组参数可单独使用,如要设置刷新率为75,使用 DISP f75 即可。 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'EDIT' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│EDIT[-|+.*=] [-right] [-center] [-rich] ┃ ┃ │ │ <编辑框名称>,<编辑框形状>,[编辑框内容],[编辑框事件],[编辑框类型] ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│建立一个单/多行文本编辑框。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │参数│■-表示水平滚动条;|表示垂直滚动条;+表示无边框;.表示不转换\n否则转换;*表示预解释事件(变量┃ ┃ │ │ ) =表示编辑框内容是文件名,无顺序;注意以上参数需紧跟“EDIT”控件命令后,不要有空字符! ┃ ┃ │ │ <编辑框名称>参数前的 * 表示退出代码块或函数时自动回收。-rich:可设置颜色 ┃ ┃ │ │■编辑框名称: 字串,编辑框名称应是唯一的,不能与其它控件名称或环境变量名称同名。 ┃ ┃ │ │■编辑框形状: 编辑框位置和大小,格式为,左上宽高均为数值。 ┃ ┃ │ │■编辑框内容: 字串,初始化编辑框时填入的文字内容。\n或原生换行。逗号可用变量(事件同)。 ┃ ┃EDIT│ │■编辑框事件: 在编辑框内按下回车键或双击时执行的命令,必须是 WinCMD 支持的有效命令。 ┃ ┃ │ │■编辑框类型: 数字(累加),默认为0,正常编辑框,负号为灰色禁用,1密码输入框,2只读,4多行, ┃ ┃ │ │ 0x10位不可见,0x20位可编辑并支持自动换行,0x40位跳到末尾。0x100接受一个拖入文 ┃ ┃ │ │ 件名。0x200接受所有拖入文件名,多行。0x400数字。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│EDIT Edit1,L32T244W240H24,C:\Windows,ENVI @Label1=%Edit1%,0x224 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※该命令一般位于_SUB命令和_END命令之间,参照_SUB、CALL命令说明。 ┃ ┃ │ │※要设置编辑框的文字内容,可使用 "ENVI @编辑框名称=文本内容" 来设置,参照 ENVI 命令的说明。 ┃ ┃ │ │※可用"ENVI @编辑框名称.Enable=数值"来设置编辑框的可用状态;0为不可用状态,非0为可用状态。 ┃ ┃ │ │※可用"ENVI @编辑框名称.ReadOnly=数值"来设置编辑框的只读状态;0为非只读状态,非0为只读状态。┃ ┃ │ │※可用"ENVI @编辑框名称.Visable=数值"来设置可见状态;0为不可见,非0为可见。 ┃ ┃ │ │※可用"ENVI @编辑框名称.LINE=数值"来使某行可见。不可查询。行号从1开始。0和1直接跳回1行号, ┃ ┃ │ │ “-1”直接到末尾。而以:引导为相对位置,负数为上滚行数。 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'EJEC' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│EJEC [C-|U-|X:],[操作标识] ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│弹出或关闭指定的CDROM驱动器托盘;移除指定的USB驱动器。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │参数│■参数"C-" 将操作所有可能的CDROM光驱的托盘; ┃ ┃ │ │■参数"U-" 将移除所有可能的USB磁盘; ┃ ┃EJEC│ │■参数"X:" 将操作指定盘符的CDROM光驱或USB磁盘; ┃ ┃ │ │■操作标识 指定弹出或关闭CDROM驱动器托盘,省略默认0,为弹出操作,1为关闭。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│EJEC C- 或 EJEC U- 或 EJEC H: 或 EJEC H:,1 或 EJEC C-,1 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※本命令为系统托盘没有U盘管理图标的精简PE使用;对于有U盘管理图标的PE,建议使用系统托盘图标。┃ ┃ │ │※本命令不要在配置文件中使用;INIT命令带"I"参数会将本命令的功能安装到托盘图标的菜单中。 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'ENVI' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│ENVI[.$%~~.*=] [&[&]][$][#][名称][=值] ┃ ┃ │ │ENVI[.$%~~.*=] &::[名称][=值] //全局PE变量 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│设置或清除环境变量。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │参数│■指定环境变量名称和值。 ┃ ┃ │ │"."表示\n转换为换行,如果是控件为禁止换行。"$"表示值按16进制转换为对应字符,8个一组或空格分 ┃ ┃ │ │隔;"%"按10进制转换,空格分隔;均为UNICODE。"~"表示变量再解释一次;"~~"再2次。"*"多轮次"$" ┃ ┃ │ │"%"时,[*重复因子]数据。=按空格分隔的词重复,[*重复因子] 词。 ┃ ┃ │ │前导"$"表示设置系统级环境变量,"#"表示设置用户级环境变量;均变更广播所有程序(5秒超时)。 ┃ ┃ │ │前导"&"表示设置函数或窗口PE变量。 ┃ ┃ │ │前导"&&"表示定义功能,即只是本级变量;本级没有就添加。否则仅设置本程序内部使用的环境变量。同┃ ┃ │ │ 时可屏蔽/保护上级变量。 ┃ ┃ │ │环境变量如果没有等号=,则删除变量。 如"ENVI ABC" ┃ ┃ │ │PE变量如果没有等号=,则仅清除变量内容。 如"ENVI &ABC" ┃ ┃ │ │如果不指定值,则环境变量设为空值。如"ENVI ABC=" "ENVI &ABC=" ┃ ┃ │ │"ENVI $" 设置以下系统环境变量后广播变更通知: ┃ ┃ │ │ Favorites 收藏夹目录 ┃ ┃ │ │ Desktop 桌面目录 ┃ ┃ENVI│ │ StartMenu 开始菜单目录 ┃ ┃ │ │ Startup 启动菜单目录 ┃ ┃ │ │ Programs 程序菜单目录 ┃ ┃ │ │ SendTo 发送到目录 ┃ ┃ │ │ Personal 我的文档目录 ┃ ┃ │ │ QuickLaunch 快速启动目录 ┃ ┃ │ │■"ENVI " 注册表中环境变量变更通知所有程序(5秒超时,避免假死可用多线程或多进程)。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│ENVI TEMP=%SystemDrive%\TEMP 或 ENVI &&ABC=123 或 删除ABC:ENVI &ABC 或 ENVI$ NL=0d 0a ┃ ┃ │ │或 ENVI$ DATA=*1M 30 0d 0a 或 ENVI= DATA=*1K 0x00 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※如果使用"EXEC"执行的程序,会自动继承本程序的环境变量,换句话说,如果在配置文件中设置不带 ┃ ┃ │ │ "$"的"ENVI"环境变量,对后面的"EXEC"程序中也会有效。 窗口名和控件名也可以带&。 ┃ ┃ │ │※当参数为空或仅有参数"$"时可以起到刷新环境变量的作用。允许空字符。注意多于的的空字符。 ┃ ┃ │ │※PE变量有遮盖效应,子级变量遮盖同名上级变量。多线程中必须用PE变量,以保证互不干涉。 ┃ ┃ │ │※线程创建后自动将程序环境变量复制到子线程定级PE变量。 ┃ ┃ │ │※PE变量的读取为%&变量名%,子级优先。函数返回,该级PE变量自动释放。 ┃ ┃ │ │※添加只能本级PE变量。PE变量只是清空和修改,不能删除;以保证变量共享关系。 ┃ ┃ │ │※标准模式下没定义的变量为空,而不是不翻译(实为一种不确定状态)。 ┃ ┃ │ │※注意:支持前后的空字符。 如 TEAM ENVI ABC= 123 |... 则ABC为" 123 "而不是"123". ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'EXEC' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│EXEC [--hook] [--runs] [=][!][*][@][$][&][参数] ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│执行 EXE 、BAT、CMD 程序。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │参数│■指定程序路径和参数。前导参数如下(可同时使用,不分先后顺序): ┃ ┃ │ │※前导"="表示等待执行完成; ┃ ┃ │ │※前导"!"或"*"表示以隐藏方式执行; ┃ ┃ │ │※前导"^"或前导"_"表示最小方式执行; ┃ ┃ │ │※前导"&"表示最大方式执行; ┃ ┃ │ │※前导"$"表示文档模式; ┃ ┃ │ │※前导"@"表示在后台桌面(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 =!CMD.EXE /C "DEL /Q /F %TEMP%" ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│SHELL 也是通过此命令来载入的; ┃ ┃ │ │等待模式%ERRORLEVEL%,%&ERRORLEVEL%为程序退出码; ┃ ┃ │ │可以如批处理文件一样,不用EXEC, 直接运行,此时为等待模式。如 NOTEPAD; ┃ ┃ │ │文档模式,如果要带参数,文件名必须用"刮起来,否则全部当一个文件名。 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'EXIT' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│EXIT [脚本类型] ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│退出当前的CALL命调用的子过程,或退出LOAD命令调用的配置文件过程,或退出LOOP调用的循环命令。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃EXIT│参数│■脚本类型: 用 [数值或命令] 表示。 没有则自动判断(_SUB、FILE、FORX、LOOP、BLOCK) ┃ ┃ │ │ ◆命令: 不分大小写,可用 _SUB、FILE、FORX、LOOP、-或BLOCK,分别指当前过程、当前文件、 ┃ ┃ │ │ 当前FORX循环 、当前LOOP循环、跳出当前BLOCK(段式}在行首)。 【建议使用】┃ ┃ │ │ ◆数值: 可取"1~4",分别指当前过程、当前文件、当前FORX循环 、当前LOOP循环 【建议不用】┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│IFEX $%Val%=10,EXIT Loop 或 FIND $%Cancel%=YES,EXIT File!EXIT _Sub 或 EXIT 1 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※示例1表示Val为10时退出当前循环;示例2表示变量Cancel为YES时退出当前文件,否则退出当前过程。┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'FBWF' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│FBWF [P可用内存百分数] [L最小值] [H最大值] ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│设置FBWF缓存 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃FBWF│参数│■最大值、最小值均为MB。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│FBWF P20 L32 H64 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│三个参数都可单独使用,如使用 FBWF L64 时,将不理会可用内存的大小,强制设置 64M 的 FBWF。 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'FDRV' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│FDRV <变量名><=>[文件目录名] ┃ ┃ │ │FDRV <变量名>= //返回系统所有盘符,返回值是 C:|D:|E:|F:|.... 的形式。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│返回指定"文件目录名"所在的分区盘符(以":"结束,最后无"\")或系统所有盘符。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │参数│■变量名: 用于保存分区盘符的变量名称; ┃ ┃FDRV│ │■文件名: 合法的文件目录名称(也可省略,省略时另有意义,见《备注》的解释。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│FDRV fDrive=C:\Windows\System32\calc.exe 或 FDRV AllDrive= ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※当文件名是相对路径时,返值结果是 PECMD.EXE 的工作目录或配置文件的工作目录所在的分区盘符; ┃ ┃ │ │※当省略"文件目录名"时返回系统所有盘符,返回值是 C:|D:|E:|F:|.... 的形式; ┃ ┃ │ │※示例1结果是"C:",示例2结果是系统所有盘符的列表(注意这个列表不是固定的,会随时发生变化)。 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'FILE' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│FILE <文件路径>[<操作符>[目标路径] ┃ ┃ │ │FILE 文件路径>>不带父目录的新名称 //模仿CMD的 Ren,只改名,不改所在目录┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│删除、复制、移动或重命名文件目录。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │参数│■文件路径: 被操作的源文件目录名,删除、复制和移动文件目录时支持DOS通配符"?"或"*"; ┃ ┃ │ │■操作符号: 用"->"、"=>"、">>"分别表示移动、复制、重命名文件目录,省略操作符号表示删除操作。┃ ┃FILE│ │ ">>"重命名时,文件路径、新名称不要带DOS通配符,且都只有一个,新名称必须不 ┃ ┃ │ │ 存在,目录不变。其实"->"也有改名功能,而且更强大。 ┃ ┃ │ │■目标名称: 将源文件目录移动、复制到的目标路径名,不能含DOS通配符,要用确定的文件目录名。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│FILE %SystemRoot%\INF\*.INF=>%TEMP%或FILE pphk->pphk22或FILE top.bmp->pphk22\topfile.bmp ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※如果以RAMDISK启动系统,可删除启动后无用文件(如2MB的NTOSKRNL.EXE)来增加RAMDISK的可写空间; ┃ ┃ │ │※移动与复制时,如只指定了目录,则仅复制或移动一个指定名称的目录到目的地,如例2;如果是操作 ┃ ┃ │ │ 文件但所指定的目的地并不存在所指定的目录,也不会进行操作,如例3; ┃ ┃ │ │※所指定的目标目录或文件不存在,将终止操作;如例2与3中的“pphk”“top.bmp”目标不存在的话; ┃ ┃ │ │※要移动文件夹到一个新的文件夹,请看范例: FILE pphk=>pphk22 ┃ ┃ │ │※除重命名,源和目标可以是“;”分隔的多个。多目标时,目标和源一样多,对应着操作;目标为目标 ┃ ┃ │ │ 本名,不能是所在目录。如:FILE x.log;x3.log=>FOLDER\x11.log;HELP\x33.log ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'FIND' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│FIND <条件>,[命令1][!命令2] ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│依据条件表达式是否成立,成立则执行命令群组1,不成立则执行命令群组2。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │参数│■条件 对[内存总数]或[磁盘总空间]或[内存进程]或[按键]的判断。 ┃ ┃ │ │※内存总数 MEM<比较符>数值。单位M,进1法。 ┃ ┃ │ │※内存总数 MEMB<比较符>数值。单位字节 ┃ ┃ │ │※磁盘总空间 R:\<比较符>数值,R:表示盘符。 ┃ ┃ │ │※按键 KEY<比较符>[#]数值。 ┃ ┃FIND│ │※内存进程 内存进程名。 ┃ ┃ │ │※字符串比较 $左部<比较符>右部,不区分大小写的。左部、右部支持变量;含有比较符是需要如此 ┃ ┃ │ │※比较符 比较操作符"<"、">"、"="、"!"、">="、 "<="、"!="、"<>"分别表示:小于、大于、等 ┃ ┃ │ │ 于、不等于、大于等于、小于等于、不等于、不等于。 ┃ ┃ │ │※数值 比较的数值,磁盘单位是MB,按键数值是按键代码。可带TGMKS ┃ ┃ │ │※命令群组 要执行的一条或多条命令,多条命令之间用"|"分开。命令群组之间用分隔符"!"分开。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│FIND MEM<128,SHEL %SystemRoot%\SYSTEM32\XPLORER2.EXE!SHELL %SystemRoot%\EXPLORER.EXE ┃ ┃ │ │FIND 条件1,!! FIND 条件2,! FIND 条件3, 做某事1! 做某事2 //嵌套句式,可和IFEX混合 ┃ ┃ │ │FIND $%m%=1,!! find $%n%=1, mess aaa!mess bbb //嵌套范例 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※本命令功能强大,也比较复杂,且可以嵌套(FIND或IFEX)使用,判断多个条件。 ┃ ┃ │ │※本命令嵌套FIND或IFEX命令时,被嵌套的命令中使用"!"群组分隔符,不能引起混淆。 ┃ ┃ │ │ 逗号“,”后紧接!!,表示没有ELSE部分;方便嵌套组合。 ┃ ┃ │ │※与本命令功能相似的命令是 IFEX 命令。 ┃ ┃ │ │※按键数值,A~Z或0~9 或编码0xNN 或2位以上数字编码。#可无。只为兼容。有#一定是编码方式。 ┃ ┃ │ │ 按键结果保存在环境变量 %PressKey% 中。 ┃ ┃ │ │ 按键只有=有意义,检测指定按键(对其它键不检测,参WAIT)。 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'FONT' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│FONT <字体路径>[,起始分区] ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│注册字体或外挂字体 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃FONT│参数│■字体文件路径和起始分区。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│FONT %CurDrv%\外置程序\FONT 或 FONT \WINDOWS 或 FONT \WINDOWS,C: ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※命令第1个字符是"\"时,将从指定的起始分区开始搜索机子所有分区 Windows\Fonts目录下的字体,并┃ ┃ │ │ 安装注册,定义起始分区可避免搜索机子中存在的软驱,省略起始分区将搜索机子所有分区(含软驱)。 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'FORM' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│FORM <变量名>=<*|卷名称> ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│返回指定分区盘符介质类型。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │参数│■变量名: 用于保存分区盘符介质类型的变量名称。BUSNAME保存总线类型,弥补介质类型信息不足。 ┃ ┃ │ │■卷名称: 系统存在的合法盘符、文件目录名。为*则返回盘符列表 ┃ ┃FORM├──┼──────────────────────────────────────────────┨ ┃ │示例│FORM DriveType=F: 或 FORM DriveType=C:\Windows 或 FORM DriveType=%CurDir% ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※卷名称可以引用 WinCMD 的环境变量,如示例3; ┃ ┃ │ │※命令的返回值为以下字符串: DRIVE_UNKNOWN、DRIVE_NO_ROOT_DIR、DRIVE_REMOVABLE、DRIVE_FIXED、┃ ┃ │ │ FUNCTION_ERROR、DRIVE_REMOTE、DRIVE_CDROM、DRIVE_CDROMUSB、DRIVE_RAMDISK、DRIVE_USBFLASH、┃ ┃ │ │ DRIVE_USBDISK。 ┃ ┃ │ │※本命令配合 FDRV 命令可以列出系统所有盘符卷的介质类型,参照 FDRV 命令的说明。 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'FORX' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│FORX [@|$][[!]\]<文件>,<变量>,[数值],<命令> [参数表] ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│对匹配的文件目录进行对应的命令操作,本命令的功能类似CMD.EXE的for命令。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │参数│■文件: 指定文件目录名,可带有通配符。 ┃ ┃ │ │■变量: 指定变量名,指代找到文件,该变量不要重名。参数表中可以多处引用。 ┃ ┃ │ │■数值: 对匹配的文件目录执行相应次数的命令操作,<=0表示对所有存在的文件执行命令操作。 ┃ ┃ │ │■命令: WinCMD.EXE合法有效的命令,命令后的参数格式和个数由该命令而定。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃FORX│示例│◆FORX %CurDir%\Path1\*.DLL,AnyDLL,0,CALL $%AnyDLL% ┃ ┃ │ │◆FORX \auto*.INF,AutoRunVirus,0,FILE %AutoRunVirus% ┃ ┃ │ │◆FORX !\Tools\Tools.INI,MyIni,1,LOAD %MyIni% ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※该命令可以搜索到带有属性的文件目录,如隐藏属性的文件目录。 ┃ ┃ │ │※前导"\"表示搜索所有分区。"!"表示对所有分区进行逆序搜索。 ┃ ┃ │ │※前导"@"表示仅搜索目录,"$"搜索目录和文件,省略该前导表示仅搜索文件。 ┃ ┃ │ │※示例1,表示注册 %CurDir%\Path1\ 目录中的所有 DLL。 ┃ ┃ │ │※示例2,表示删除所有分区根目录的 auto*.INF 文件。 ┃ ┃ │ │※示例3,表示逆序搜索所有分区Tools目录下Tools.INI,并把搜索的第1个Tools.INI用LOAD命令加载。 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'GETF' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│GETF <文件名称>,<位置长度>,<变量名称> ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│以 BINARY 形式读取指定文件的数据,并将数据赋值给指定的变量名。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │参数│■文件名称: 合法的文件名,支持环境变量解释;可以使物理磁盘如\\.\PhysicalDrive0,逻辑磁盘如 ┃ ┃ │ │ C:,分区设备如\Device\Harddisk0\Partition1 ┃ ┃ │ │■位置长度: 数值,由要读取的起始位置和要读取的长度(字节)组成,之间用"#"分隔,如 1023#32; ┃ ┃ │ │ 可带TGMKS后缀。K=1024, S=512。长度为*这读到文件尾。 ┃ ┃ │ │■变量名称: 字符串,用于保存读取结果的的变量名。 ┃ ┃GETF├──┼──────────────────────────────────────────────┨ ┃ │示例│GETF %CurDir%\Memu.LST,0x400#0x10,FileData 或 GETF %CurDir%\Memu.LST,-1,FileLength ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※GETF命令读取文件的起始位置是相对于文件基址的,如要读取文件的第1个字节,则起始位置为 0x00;┃ ┃ │ │※命令的结果以16进制数值表示,数值之间由空格分隔,省略起始位置或省略读取长度均取其默认值1; ┃ ┃ │ │※以 BINARY 方式修改文件的对应命令是 PUTF,建议不要用GETF命令和PUTF命令处理超大体积的文件; ┃ ┃ │ │※起始位置小于0或超过文件长度时,命令的结果为10进制表示的文件长度,出错结果为0xFFFFFFFF; ┃ ┃ │ │※另外以字符串方式读取文件或修改文件命令为READ命令和WRIT命令。大量(7K)数据需要PE变量; ┃ ┃ │ │※数据格式: 数值之间用空格分隔,如 0x23 0xAD 0x1C 0x80。 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'GROU' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│GROU [-right] [-center] [*] <组合面板名称>,<组合面板形状>,[组合面板标题],[状态] ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│在_SUB定义的窗口内建立组合面板,用于说明组合面板内控件的功能和作用。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │参数│ <组合面板名称>前的 * 表示退出代码块或函数时自动回收。 ┃ ┃ │ │■组合面板名称: 字串,组合面板名称应是唯一的,不能与其它控件名称或环境变量名称同名。 ┃ ┃ │ │■组合面板形状: 组合面板的位置和大小,格式为,左上宽高均为数值。 ┃ ┃GROU│ │■组合面板标题: 字串,用以描述组合面板的作用或功能。 ┃ ┃ │ │■组合面板状态: ±16不可见。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│GROU Group1,L8T4W336H400,注册WimShExt.DLL ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │ │※该命令一般位于_SUB命令和_END命令之间,参照_SUB、CALL命令说明。 ┃ ┃ │备注│※要设置组合面板标题,可以使用"ENVI @组合面板名称=组合面板标题"来设置 ,参照ENVI命令的说明。┃ ┃ │ │※可用"ENVI @组合面板名称.Visable=数值"来设置编辑框的可见状态;0为不可见,非0为可见。 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'HOME' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│HOME [IE主页],[数值1],[数值2] ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│设置IE主页、锁定IE主页及禁用注册表编辑器。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │参数│■IE主页: 支持各种类型网址和本地网页文件,如"http:\\www.mssb.com" ┃ ┃ │ │ 当网址为本地网页文件时要使用文件全名(可带环境变量),如 "%SystemRoot%\ReadME.htm" ┃ ┃HOME│ │■数值1 : 非0时锁定IE主页,即禁止修改IE主页,该参数省略时默认为0,可修改IE主页。 ┃ ┃ │ │■数值2 : 非0时禁用注册表编辑器,该参数省略时默认为0,可使用注册表编辑器。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│HOME http:\\www.sbms.com,1,1 或 HOME %SystemRoot%\ReadME.htm ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※本命令在脚本或CMD批处理中均可使用;IE主页或注册表编辑器被恶意工具锁定时可用该命令解锁。 ┃ ┃ │ │※示例1表示将 "http://www.sbms.com" 设置为主页,同时禁止修改主页,禁止使用注册表编辑器。 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'IFEX' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│IFEX[|] <条件>,[命令群组1][!命令群组2] ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│依据条件表达式是否成立,成立则执行命令群组1,不成立则执行命令群组2。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │参数│※条件 对[可用内存]或[磁盘可用空间]或[文件目录]或[按键]的判断。 ┃ ┃ │ │※可用内存 MEM<比较符>数值。单位M,进1法。 ┃ ┃ │ │※可用内存 MEMB<比较符>数值。单位字节 ┃ ┃ │ │※磁盘可用空间 R:\<比较符>数值,R:表示盘符。 ┃ ┃ │ │※按键 KEY<比较符>数值。 ┃ ┃ │ │※文件目录 文件目录名,可以使用通配符。\结尾则必须为目录。 ┃ ┃ │ │※数值比较 $左部<比较符>右部。带符号浮点数。 ┃ ┃IFEX│ │※比较符 比较操作符"<"、">"、"="、"!"、">="、 "<="、"!="、"<>"分别表示:小于、大于、 ┃ ┃ │ │ 等于、不等于、大于等于、小于等于、不等于、不等于。 ┃ ┃ │ │※数值 比较的数值支持整数与浮点数,磁盘单位是MB,按键数值是按键代码。可带TGMKS ┃ ┃ │ │※命令群组 要执行的一条或多条命令,多条命令之间用"|"分开。命令群组之间用分隔符"!"分开。┃ ┃ │ │※IFEX| 群组方式,表示检测后面参数中的“|”字符。默认不检测“|”,以免出错。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│IFEX KEY=17,TEAM TEXT 搜索系统字体…| FONT \WINDOWS!TEXT 安装外挂字体 ┃ ┃ │ │IFEX 条件1,!! IFEX 条件2,! IFEX 条件3, 做某事1! 做某事2 //嵌套,可和FIND混合 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※本命令功能强大,也比较复杂,且可以嵌套(IFEX或FIND)使用,实现判断多个条件。 ┃ ┃ │ │※本命令嵌套FIND或IFEX命令时,被嵌套的命令中使用"!"群组分隔符,不能引起混淆。 ┃ ┃ │ │ 逗号后紧接!!,表示没有ELSE部分;便于嵌套组合 ┃ ┃ │ │※与本命令功能相似的命令是 FIND 命令。 ┃ ┃ │ │※本命令用于变量判断时,所有变量均按double数据类型来处理。 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'INIT' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│INIT [选项列表][,等待时间][,USB起始盘符] ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│执行最基本初始化,注册Window外壳,初始化用户文件夹和环境变量,安装键盘钩子,并建立以下目录: ┃ ┃ │ │Favorites 收藏夹目录 Programs 程序菜单目录┃ ┃ │ │Desktop 桌面目录 SendTo 发送到目录 ┃ ┃ │ │StartMenu 开始菜单目录 Personal 我的文档目录┃ ┃ │ │Startup 启动菜单目录 QuickLaunch 快速启动目录┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │参数│■选项列表: 支持4个选项,由"C"、"I"、"K"、"U"组成,可不定项使用,不分先后顺序。 ┃ ┃ │ │ ◎选项"C": 表示将光驱的盘符写入环境变量; ┃ ┃ │ │ ◎选项"I": 表示将PECMD的部分功能安装到托盘图标的菜单中; ┃ ┃ │ │ ◎选项"K": 表示执行INIT命令立即安装低级键盘钩子,否则加载SHELL后才安装键盘钩子;┃ ┃INIT│ │ ◎选项"U": 表示检测USB移动硬盘的插入,自动分配盘符,提供移动硬盘的即插即用功能。┃ ┃ │ │■等待时间: 数值,表示移动硬盘插入到设备就绪要等待的时间(毫秒),设置太小可能无法分配盘符。 ┃ ┃ │ │■USB起始盘符: USB起始盘符。默认为U ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│INIT 或 INIT C 或 INIT CU 或 INIT CIK 或 INIT CIKU 或 INIT IU,3000 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※执行INIT命令后,再执行SHEL命令加载指定的SHELL即可启动一个最小化的WinPE。 ┃ ┃ │ │※执行INIT命令前确保%USERPROFILE%所在分区有一定的可写空间,否则INIT命令无法完成工作。 ┃ ┃ │ │※带选项"C"时,光驱盘符保存在以CDROM开头的环境变量中(启动后须用无参数的ENVI命令刷新才生效)。┃ ┃ │ │※带选项"I"时,启动后托盘出现一个图标菜单,菜单集成了常用功能,WinPE定制人员可修改菜单功能。┃ ┃ │ │※选项"K"表示即刻安装键盘钩子,接管Ctrl+Alt+Del呼出任务管理器。 ┃ ┃ │ │※带选项"U"时,启动后可实现移动硬盘的即插即用,可用命令"EJEC U-"或从托盘菜单移除移动硬盘。 ┃ ┃ │ │※"等待时间"参数若省略时,将使用内定的默认值(3000);选项"U"省略时,"等待时间"参数也应省略。 ┃ ┃ │ │※公开发行WinPE的INIT命令不建议带选项"K",本命令不能在命令行中使用,只能在配置文件中使用。 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'ITEM' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│ITEM [-right] [-left] [*] <按钮名称>,<按钮形状>,[按钮标题],[按钮事件],[按钮图标],[状态] ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│在_SUB定义的窗口内建立一个按钮。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │参数│ <按钮名称>前的 * 表示退出代码块或函数时自动回收。 ┃ ┃ │ │■按钮名称: 字符串,按钮的名称应是唯一的,不能与其它控件名称或环境变量名称同名。 ┃ ┃ │ │■按钮形状: 按钮位置和大小,格式为,左上宽高均为数值。 ┃ ┃ │ │■按钮标题: 位于按钮上的文字,用于描述按钮的功能或执行的命令。 ┃ ┃ITEM│ │■按钮事件: 点击该按钮时执行的命令,必须是 WinCMD 支持的有效命令。 ┃ ┃ │ │■按钮图标: 在按钮上显示的图标,格式为<图标文件名#ID>,图标大小 = 按钮高度 - 6。 ┃ ┃ │ │■按钮状态: 数字,默认为0表示可用状态按钮,负号为灰色不可用状态按钮。16不可见。4为多行 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│ITEM Button3,L32T108W300H54,资源管理器,EXEC explorer.exe,%SystemRoot%\explorer.exe ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※ITEM命令一般位于_SUB命令和_END命令之间,参照_SUB、CALL命令说明。 ┃ ┃ │ │※要设置按钮上的文本,可使用 "ENVI @按钮名称=按钮文本" 来设置,参照 ENVI 命令的说明。 ┃ ┃ │ │※可用"ENVI @按钮名称.Enable=数值"来设置编辑框的可用状态;0为不可用状态,非0为可用状态。 ┃ ┃ │ │※可用"ENVI @按钮名称.Visable=数值"来设置可见状态;0为不可见,非0为可见。 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'KILL' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│KILL <进程名称|\[窗口标题]|@[窗口名称]> ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│强制终止指定的进程。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃KILL│参数│进程名称,即 EXE 文件名(不包含路径)。pid为进程PID。省略窗口标题/窗口名称为本窗口。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│KILL WinLogon 或 KILL \%ABC% 或 KILL @ABC ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│此命令将终止与"进程名称"前部分匹配的所有进程,所以如果省略参数,可能将全部进程关闭。 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'LABE' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│LABE[+.*] [-right] [-center] [-left] ┃ ┃ │ │ <标签名称>,<标签形状>,[标签文字],[执行命令],[颜色集合],[字体大小] ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│在_SUB定义的窗口内建立一条静态文字标签。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │参数│■+表示带边框,.表示不转换“\n”换行符, ┃ ┃ │ │ *表示预解释事件(变量)注意以上参数必须紧跟LABE命令后,不要有空格!也没有顺序之分。 ┃ ┃ │ │ [-right]文本右对齐,[-center]文本居中,[-left]文本左对齐,[-trans]透明标签。 ┃ ┃ │ │■标签名称: 字串,标签名称应是唯一的,不能与其它控件名称或环境变量名称同名。 ┃ ┃ │ │■标签形状: 标签的位置和大小,格式为,左上宽高均为数值。 ┃ ┃ │ │■标签文字: 字符串,要标签显示的文字,支持多行显示,文字行间用"\n"表示断行。 ┃ ┃ │ │■执行命令: WinCMD有效的命令,如 EXEC $%CurDir%\a.TXT 或 EXEC $http://mdyblog.blog.163.com。┃ ┃ │ │■颜色集合: 数值,依次由正常文字颜色、正常背景颜色、活动文字颜色和活动背景颜色四种颜色组成,┃ ┃ │ │ 四个数值之间由'#'字符分隔,格式为"数值1#数值2#数值3#数值4",支持16进制数值, ┃ ┃ │ │ 如 0x00FFFF#0xFF0000#0x0000FF#0000,任一颜色值省略都采用系统默认颜色值。 ┃ ┃ │ │ 如果第二组颜色中某一#没有,则同前一组对应颜色;如只有0/1个#,两组颜色相同。 ┃ ┃ │ │■字体大小: 数值,支持16进制数值,如0x0A,省略该参数时为系统默认的字体大小。-16 不可见。 ┃ ┃LABE├──┼──────────────────────────────────────────────┨ ┃ │示例│LABE Label1,L20T280W128H48,请点击"打开"按钮以浏览文件。 ┃ ┃ │ │LABE Label2,L20T24W80H20,帮助说明,EXEC %CurDir%\ReadME.EXE,0xFF0000,12 ┃ ┃ │ │LABE Label3,L20T48W80H20,DSystem,EXEC $http://mdyblog.blog.163.com,0x000000##0x0000FF,14 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※LABE命令一般位于_SUB命令和_END命令之间,参照_SUB、CALL命令说明。 ┃ ┃ │ │※当设置了"背景颜色"或"执行命令"时,"标签文字"会居中显示,居中显示的文字无法分行显示。 ┃ ┃ │ │※要设置标签上文字内容,可以使用 "ENVI @标签名称=标签文字" 来设置 ,参照 ENVI 命令的说明。 ┃ ┃ │ │※"执行命令"若是通过EXEC命令执行网页地址时,可以包含网址字符串"//"。 ┃ ┃ │ │ 当"执行命令"不省略时,鼠标移到其上会变成手形鼠标。 ┃ ┃ │ │※"标签文字"和"执行命令"均不能含有','字符;若"标签文字"非要含","字符,可用变量传入(%DouHao%)┃ ┃ │ │ 可在下一条命令ENVI命令来设置,也可在窗口启动后通过启动一次定时器,在定时器内用ENVI命令来设┃ ┃ │ │ 置;若"执行命令"非要含有','字符;可放入变量;可用CALL命令来完成;可用预解释模式(%MYCMD%)。┃ ┃ │ │※系统默认的字体大小和颜色值在不同系统中可能不同,与系统的设置有关。 ┃ ┃ │ │※可用"ENVI @标签名称.Visable=数值"来设置可见状态;0为不可见,非0为可见。 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'LINK' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│LINK [_|^|!]<快捷方式路径><,目标路径>[,运行参数][,图标路径#图标索引][,快捷键] ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│创建快捷方式。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │参数│■快捷方式路径: 指定要生成的快捷方式的路径,不需要".LNK"扩展名。 ┃ ┃ │ │■目标路径: 指定快捷方式的目标文件或目录。如果目标不存在,将不会创建快捷方式。如果在命令┃ ┃LINK│ │ 文件中使用此命令,目标路径可以使用相对路径(相对于配置文件所在路径)。 ┃ ┃ │ │■运行参数: 目标程序运行参数。 ┃ ┃ │ │■图标路径: 快捷方式图标的路径。 ┃ ┃ │ │■图标索引: 快捷方式图标在文件资源中序号,0为第1个图标,不填则默认。 ┃ ┃ │ │■快捷键: 快捷键,此时图标索引前的#或,不可省。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│LINK !%Desktop%\宽带连接,RASPPPOE.CMD,,RASDIAL.DLL,19 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│前导“_”表示以最小化方式启动程序,前导“!”表示以隐藏方式启动程序,可用于执行批处理文件时最┃ ┃ │ │小化/隐藏命令窗口。前导“^”表示以最大化方式启动程序。“,”可变量传入。 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'LIST' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│LIST <下拉列表框名称>,<形状>,<下拉列表框内容>,[下拉列表框事件],[默认选中的条目],[状态] ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│在_SUB定义的窗口内建立一个下拉列表框。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │参数│■下拉列表框名称: 字符串,下拉列表框名称应是唯一的,不能与其它控件名称或环境变量名称同名。 ┃ ┃ │ │■下拉列表框形状: 下拉列表框形状位置和大小,格式为,左上宽高均为数值。 ┃ ┃ │ │■下拉列表框内容: 下拉列表框内可供选择的条目,条目与条目之间用字符"|"隔开。 ┃ ┃ │ │■下拉列表框事件: 下拉列表框内被选择条目发生变化时执行的命令,必须是 PECMD 支持的有效命令。 ┃ ┃ │ │■默认选中的条目: 初始化下拉列表框设置被选中的条目。 ┃ ┃ │ │■状态: 数字,负号为灰色禁用。0x4可编辑列表,0x200简单列表。0x10不可见。0x100自动垂直滚动条 ┃ ┃ │ │ 。0x400自动排序。0x800大写。0x1000小写。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃LIST│示例│LIST List1,L200T360W128H32,EXPLORER|XPLORER2|CMD,ENVI @Label1=%List1%,EXPLORER ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※LIST命令一般位于_SUB命令和_END命令之间,参照_SUB、CALL命令说明。 ┃ ┃ │ │※可用 "ENVI @下拉列表框名称=[+|-:]条目内容或条目列表" 来修改下拉列表框的条目。 ┃ ┃ │ │ 前导符"+"表示向下拉列表框增加条目,格式为 "ENVI @下拉列表框名称=+新增加的条目" ┃ ┃ │ │ 前导符"-"表示删除下拉列表框指定的条目,格式为 "ENVI @下拉列表框名称=-被删除的条目" ┃ ┃ │ │ 前导符":"表示选定下拉列表框指定的条目,格式为 "ENVI @下拉列表框名称=:被选定的条目" ┃ ┃ │ │ 无前导符表示初始化下拉列表框所有的条目,格式为 "ENVI @下拉列表框名称=条目1|条目2|条目3..."┃ ┃ │ │ 所以下拉列表框的条目内容中的第一个字符不能是 "+" "-" ":";可用变量传入。 ┃ ┃ │ │※可用"ENVI @下拉列表框名称.Enable=数值"来设置下拉列表框可用状态;0为禁用状态非0为可用状态。┃ ┃ │ │※环境变量 %下拉列表框名称% 为下拉列表框被选中的条目(字符串)。 ┃ ┃ │ │※注意变量 %下拉列表框名称% 与 "下拉列表框名称" 的区别,%下拉列表框名称%为被选中的条目。 ┃ ┃ │ │※可用"ENVI @下拉列表框名称.Visable=数值"来设置可见状态;0为不可见,非0为可见。 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'LOAD' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│LOAD <文件路径> [命令行参数] ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│按顺序逐条运行配置文件中的命令。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │参数│■指定文件名(含路径,支持环境变量),及参数。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│LOAD \外置程序\PECMD.INI A B 或 LOAD #102 A B 或 LOAD "X:\Program Files\a.ini" "1 x" 2 ┃ ┃LOAD├──┼──────────────────────────────────────────────┨ ┃ │备注│※每条命令单独一行,主流程的命令是完全按顺序执行的。不正确的命令或空行将忽略不计。 ┃ ┃ │ │※配置文件支持整行注释和行后注释,整行注释可以用"/"或";",但行后注释必须是";"。 ┃ ┃ │ │※在配置文件中可以使用环境变量"%CurDir%"表示当前目录,"%CurDrv%"表示当前盘符。 ┃ ┃ │ │※如果文件路径第1个非"字符是"\",则搜索所有磁盘指定目录中的文件,如"LOAD \MyWinPE\PECMD.INI"┃ ┃ │ │※配置文件所在目录被设置为当前目录,这样创建快捷方式时,快捷方式目标路径可以使用相对路径。 ┃ ┃ │ │※其它的参照MAIN命令的说明。偏移[+长度限制]使得可以运行非文件系统(设备或片段)及合并脚本 ┃ ┃ │ │※LOAD 支持文件编码字符集指定。CMPS压缩前:有BOM的以BOM为准;否则在第一行用#code=字符集数字 ┃ ┃ │ │ 指定;如果第一行为#!开始,则放在第二行。BOM有UNICODE UNICODEBE UTF8。 ┃ ┃ │ │※文件路径或某一参数如果含有空字符,需要双引号刮起来。否则会被分断。 ┃ ┃ │ │※LOAD没有省略时,第一个字面上连续串当作文件名无论是否含有空字符变量。对应双引号可省。(兼容)┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'LOGS' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│LOGS [文件路径],[数值] ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│启用日志以便记录每条命令的执行结果,帮助用户验证配置文件的正确性。LOGS *是刷到磁盘,释放内存┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │参数│※文件路径 - 指日志文件名,含路径。 ┃ ┃LOGS│ │※数值 - 实际大小不限。日志记录多,所需磁盘空间也大。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│LOGS %SystemRoot%\PECMD.LOG ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※配置文件结束之前,必须调用一次不带参数的"LOGS"命令,以关闭日志文件,程序退出是自动执行。 ┃ ┃ │ │※此命令不能在命令行中使用(必须在配置文件中使用)。 ┃ ┃ │ │※公开发布的 WinPE 中建议不要启用日志文件。仅用于调试。 ┃ ┃ │ │※配置文件默认存放在调用程序目录下,如X:\windows\system32\pecmd.ini则在X:\windows\system32\ ┃ ┃ │ │ X:\OrderUSB.WCS 则在 X:\;还有直接指定路径 X:\pecmd_debug.log(X:盘可写) ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'LOOP' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│LOOP <循环条件>,<循环命令> ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│测试循环条件,执行循环命令。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │参数│■循环条件: 格式为<[$|#]变量1<比较符>变量2>,前导符'$'表示进行字符串变量比较(不区分大小写);┃ ┃ │ │ 前导符'#'表示进行整数变量比较(按INT6类型处理),省略前导表示进行Double变量比较。 ┃ ┃ │ │※比较符 比较操作符"<"、">"、"="、"!"、">="、 "<="、"!="、"<>"分别表示:小于、大于、等 ┃ ┃ │ │ 于、不等于、大于等于、小于等于、不等于、不等于。 ┃ ┃LOOP│ │■循环命令: 格式为<[!]有效命令>,前导符'!'表示循环条件不成立时循环执行该命令,直至循环条件成┃ ┃ │ │ 立;无前导'!'表示循环条件成立时循环执行该命令,直至循环条件不成立。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│LOOP #%Number%<100,CALL DoLoop 或 LOOP $%Characters1%=%Characters2%,!CALL DoLoop ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※循环命令内必须存在修改变量的命令,否则循环不会结束(形成死循环);循环体建议放在_SUB 与 _END┃ ┃ │ │ 定义的语句中; ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'LSTR' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│LSTR <变量名><=><数目>,<字符串> ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│从指定"字符串"的左边截取指定数目的字符,并将结果返回给指定名称的变量。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │参数│■变量名: 用于保存命令结果的变量名; ┃ ┃LSTR│ │■字符串: 源字符串,长度不限; ┃ ┃ │ │■数 目: 指定截取字符的数目。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│LSTR aStr=2,1234567890 或 LSTR aStr=5,1234567890 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※当"数值"小于1时或超出源字符串的长度时,返回结果为整个源字符串(相当于字符串复制); ┃ ┃ │ │※该命令按 Unicode 字符串处理,示例1的返回值为"12",示例2的返回值为"12345"。 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'MAIN' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│MAIN[*] [文件路径] ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│初始化桌面,接管 Ctrl+Alt+Del,并创建新进程执行 LOAD 功能。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │参数│■指定初始化的配置文件路径。*表示立即隐藏守护进程。 ┃ ┃MAIN├──┼──────────────────────────────────────────────┨ ┃ │示例│MAIN %SystemRoot%\PECMD\PECMD.INI ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※MAIN命令创建LOAD进程,执行完LOAD功能后会驻留内存,安装盘键钩子,挂接"ExitWindowsEx"函数。 ┃ ┃ │ │※建议不要用PELOGON.EXE,直接用PECMD MAIN。 ┃ ┃ │ │※LAOD命令完成LOAD文件的功能后会自行退出内存,其它的参照LOAD命令的说明。 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'MDIR' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│MDIR 目录名 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│■建立指定的目录。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃MDIR│参数│目录名称。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│MDIR %TEMP% ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※MDIR命令能建立多级目录,支持带环境变量的目录名。 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'MEMO' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│MEMO[-|+.] [-right] [-center] [*] ┃ ┃ │ │ <编辑框名称>,<编辑框形状>,[编辑框内容],[目标文件名],[编辑框类型],[编辑框颜色] ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│在_SUB定义的窗口内建立一个多行文本编辑框。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │参数│■-表示无水平滚动条;|表示无垂直滚动条;+表示无边框;.表示不转换\n否则转换。无顺序之分。 ┃ ┃ │ │■编辑框名称: 字串,编辑框名称应是唯一的,不能与其它控件名称或环境变量名称同名。 ┃ ┃ │ │■编辑框形状: 编辑框位置和大小,格式为,左上宽高均为数值。 ┃ ┃ │ │■编辑框内容: 初始化编辑框时填入的内容,支持多行文字,\n或原生换行。逗号可用变量。 ┃ ┃ │ │■目标文件名: 指定文本文件名,多行文本编辑框的内容由该文件载入。 ┃ ┃ │ │■编辑框类型: 数字(累加),默认省略或为0,表示可编辑的多行文本编辑框,负号为灰色禁用,0x2位只┃ ┃ │ │ 读,0x10位不可见,0x20位可编辑并支持自动换行,0x40位跳到末尾。0x100接受一个拖 ┃ ┃ │ │ 入文件名。0x200接受所有拖入文件名,多行。0x400数字。 ┃ ┃MEMO│ │■编辑框颜色: 数字,由文字颜色和背景颜色组成,格式为"数值1#数值2",省略时为默认颜色。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│MEMO Memo1,L304T268W280H88,,%CurDir%\Readme.TXT,0 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※MEMO命令一般位于_SUB命令和_END命令之间,参照_SUB、CALL命令说明。 ┃ ┃ │ │※[编辑框内容]不为空时将忽略[目标文件名],当[编辑框内容]为空时将加载[目标文件名]指定的内容,┃ ┃ │ │ 超长的"编辑框内容"可以通过环境变量赋值来连接成一个新的字符串变量,方便在记事本中阅读。 ┃ ┃ │ │※可用"ENVI @编辑框名称.Enable=数值"来设置编辑框的可用状态;0为不可用状态,非0为可用状态。 ┃ ┃ │ │※可用"ENVI @编辑框名称.ReadOnly=数值"来设置编辑框的只读状态;0为非只读状态,非0为只读状态。┃ ┃ │ │※前景颜色和背景颜色支持C格式的16进制数值,如 0xFFFFFF。 ┃ ┃ │ │※可用"ENVI @编辑框名称.Visable=数值"来设置可见状态;0为不可见,非0为可见。 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'MENU' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│MENU <菜单项名称>,[菜单项标题],[菜单项事件],[菜单项状态] ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│向自定义的托盘图标菜单添加一项菜单。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │参数│■菜单项名称: 字符串,除分隔线外,菜单项名称应是唯一的,不能与其它控件或环境变量的名称同名,┃ ┃ │ │ 当菜单项名称或菜单项名称的第一个字符为"-"时表示分隔线,否则表示正常菜单。 ┃ ┃ │ │■菜单项标题: 菜单项上的文字,用于描述菜单项的功能或说明。 ┃ ┃ │ │■菜单项事件: 点击该菜单项时执行的命令,必须是 PECMD 支持的有效命令。为***表示退出托盘图标 ┃ ┃MENU│ │■菜单项状态: 默认为0,表示正常可用菜单,带-号或±1为灰色禁用菜单。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│MENU Menu2,分辨率1024X768 颜色32位 刷新率85,DISP W1024H768B32F85 或 MENU - ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※MENU命令可以位于_SUB命令和_END命令之外。 ┃ ┃ │ │※托盘图标菜单的图标由 _SUB 命令定义的窗口图标来决定,省略时采用 PECMD 的主图标。 ┃ ┃ │ │※通过环境变量 %菜单项名称% 来引用菜单项标题. 还有%菜单项名称.Enable% ┃ ┃ │ │※用"ENVI @菜单项名称=新标题" 来设置修改菜单项标题。 ┃ ┃ │ │※可用"ENVI @菜单项名称.Enable=数值"来设置编辑框的可用状态;0为不可用状态1为可用状态。 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'MESS' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│MESS [文字内容][@消息窗文字标题][#消息窗类型[*自动关闭的时间(毫秒)][$默认的选择]] ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│显示一个[是/否]选择消息窗或显示一个带[确定]按钮的消息窗口。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │参数│■消息窗文字内容: 支持多行文字,文字行间用“\n”断开或原始的多行文本,任何字符;保留空字符。┃ ┃ │ │■消息窗文字标题: 除@之外任何单行文本,保留空字符。特殊字符可用变量传入(%老鼠%)。 ┃ ┃MESS│ │■消息窗类型: 目前支持"YN"、"OK"。默认OK ┃ ┃ │ │■自动关闭的时间设置为0或不设置时,消息窗口不会自动关闭。默认的选择用Y或N表示,如$Y、$N ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│MESS 发现物理内存不足,\n是否设置虚拟内存?@设置虚拟内存 #YN *10000 $N ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※用户对消息窗的选择结果保存在变量 %YESNO% %&YESNO%中,当选择[是]时,变量的值为YES, ┃ ┃ │ │ 选择[否]时这一变量值为NO,当窗口超时关闭返回默认选择,可用FIND命令判断这一环境变量的值。 ┃ ┃ │ │ 其它返回值:OK、CANCEL、RETRY、IGNORE、ABORT。 ┃ ┃ │ │※"YN"类型消息窗省略默认的选择参数时自动关闭的返回值为NO。为便于调试,所有参数都可省略 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'MOUN' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│MOUN [!][Wim文件名],,[映像ID],[Wim临时工作目录] ┃ ┃ │格式│MOUN *query 变量名[=rw][,Mount目标目录] ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│将WIM文件中的某个映像挂载到指定的目录中或卸下已经挂载上的映像文件。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │参数│■Wim文件名 : Microsoft Windows Imaging Format (WIM) 映像格式的文件。 ┃ ┃ │ │■Mount目标目录 : 将WIM映像挂载到的目录。 ┃ ┃ │ │■Wim文件的映像ID : WIM文件中的映像ID,用数值表示。只读挂载映像时,映像ID为 1 时可省略。 ┃ ┃MOUN│ │■Wim临时目录 : 当设置WimFltr临时工作目录时表示RW方式挂载,这个目录建议设置到硬盘。*为系统 ┃ ┃ │ │ 临时目录 ┃ ┃ │ ├──────────────────────────────────────────────┨ ┃ │ │■*query 查询模式 变量名:返回结果 ┃ ┃ │ │■=rw: 只返回RW标志(1/0) ┃ ┃ │ │■Mount目标目录: 查询的目录。无则全部(多行串)。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│MOUN %CurDrv%\外置程序\PROGRAMS.WIM,%ProgramFiles%,1 ┃ ┃ │ │MOUN *query RW=rw,D:\Y 或 MOUN *query MSG1,D:\Y 或 MOUN *query ALL ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※文件目录名支持环境变量解释;使用 FBWF 命令时,FBWF 命令须在 MOUN 命令后。 ┃ ┃ │ │※文件名以"\"开始时,则搜索所有分区(含隐藏分区)指定目录的文件,如: MOUN \MyPE\OP.WIM,%PF%,1 ┃ ┃ │ │※前导"!"表示成功挂载隐藏分区中的WIM后,给隐藏分区分配盘符,如: MOUN !\MyPE\OP.WIM,%PF%,1 ┃ ┃ │ │※省略Wim文件名为卸下映像,映像ID为非0表示卸载映像时保存修改内容,为0表示不保存修改内容。 ┃ ┃ │ │※完整查询结果 ID FLAG "WIM文件" "加载目录" , FLAG中 0x100位为RW。 ┃ ┃ │ │※Mount目标目录自动创建. 加载只读文件自动转为只读方式 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'MSTR' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│MSTR 变量名=位置,长度,字符串 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│从指定"字符串"的指定位置向右截取指定长度的字符,并将结果返回给指定名称的变量。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │参数│■变量名: 用于保存命令结果的变量名; ┃ ┃ │ │■字符串: 源字符串,长度不限; ┃ ┃MSTR│ │■位 置: 数值,指定源字符串的起始位置; ┃ ┃ │ │■长 度: 数值,指定截取的长度。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│MSTR aStr=2,4,1234567890 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※当"位置"=0时作1处理,当"长度"小于1或超出源字符串长度时,返回起始位置后的所有字符; ┃ ┃ │ │※该命令按 Unicode 字符串处理,示例1的返回值为2345,示例2的返回值为a b c。 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'NUMK' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│NUMK <数值> ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│控制小数字键盘的开关状态 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃NUMK│参数│■数值0时为关,非0为开 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│NUMK 123 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│原有 SEND 命令可实现相同功能,但不十分准确,当 NUMK 为开时,再发送一次按键反而会关掉。 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'PAGE' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│PAGE [*force] <页面文件路径> <初始大小> [最大值] ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│设置页面文件(虚拟内存)。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │参数│■指定页面文件的路径,只能用 DOS 8.3 格式的路径,如"C:\PageFile.sys"。 ┃ ┃ │ │ 初始大小和最大值的单位是 MB;当省略最大值时,自动设置 最大值=初始大小。 ┃ ┃PAGE├──┼──────────────────────────────────────────────┨ ┃ │示例│PAGE C:\PAGEFILE.SYS 128 256 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※如果设置了页面文件,则该分区将无法执行格式化等操作。 ┃ ┃ │ │※当可用内存>初始大小时,本命令将不设置页文件,即可以定义初始大小来作为设置页文件的条件。 ┃ ┃ │ │※该命令有智能化功能,即从你定义的页面文件名(含盘符)所在的分区起开始搜索符合条件(硬盘和容量)┃ ┃ │ │ 分区来设置页文件,避开速度慢的U盘和移动硬盘。以U盘或移动硬盘启动时,可能配置文件定义的页文┃ ┃ │ │ 件就在U盘或移动硬盘。经一轮搜索若没有找到符合条件的硬盘分区设置页文件才利用U盘或移动硬盘来┃ ┃ │ │ 设置页文件。 *force禁止备注2备注3。 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'PATH' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│PATH [#|@]目录名 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│设置PECMD.EXE的当前工作目录或建立目录或删除目录。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃PATH│参数│■目录名称。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│PATH %CurDrv%\外置程序 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※前导"@"表示设置PECMD.EXE的当前目录,方便EXEC、DEVI等命令采用相对路径,以缩短命令行长度。 ┃ ┃ │ │※前导"#"表示删除目录,注意该操作也可能删除同名的文件。 ┃ ┃ │ │※省略前导符"@"和"#"时,PATH用于建立目录(能建立多级目录)。 ┃ ┃ │ │※在配置文件内使用带前导"@"的PATH命令必须谨慎,以防引起错乱。 ┃ ┃ │ │※当参数为空时将恢复 PECMD.EXE 默认的当前目录(%SystemRoot%\SYSTEM32)。 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'PCIP' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│PCIP [IP地址],[子网掩码],[默认网关],[DNS地址],[网卡序号][,网卡状态] //固定IP ┃ ┃ │ │PCIP -,[-],[-],[DNS地址],[网卡序号][,网卡状态] //动态IP ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│设置计算机IP地址。格式1为固定IP(全部参数不可省)。 格式2为动态(可以指定DNS)。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │参数│■IP 地址 : IP形式字符串表示网络的IP地址,省略表示不修改IP地址,"-"号表示自动获取IP地址; ┃ ┃ │ │■子网掩码: IP形式字符串表示子网掩码,省略为不修改子网掩码,IP为"-"时表示自动获取子网掩码; ┃ ┃ │ │ 支持多IP多掩码。中间";"或":"或"&"分隔。多IP需要和多掩码对应,见示例。 ┃ ┃ │ │■默认网关: IP形式字符串表示网关地址,省略为不修改网关地址,IP为"-"时表示自动获取网关地址; ┃ ┃ │ │■DNS 地址: IP形式字符串,表示DNS地址,首选DNS与备用DNS间用";"或"&"连接,省略表示不修改DNS ┃ ┃PCIP│ │ 地址, "-"号表示自动获取DNS服务器地址; ','需变量方式。 ┃ ┃ │ │■网卡序号: 数字,可省略,默认为0表示第一网卡,1表示第二网卡,2表示第三网卡,依次类推; ┃ ┃ │ │■网卡状态: 数字,用于操作网卡的启用或禁用状态,非0表示启用0表示禁用,省略则不操作网卡状态。┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│PCIP 192.168.1.2,255.255.255.0,192.168.1.1,192.168.1.1 或 PCIP -,-,-,-,,1 ┃ ┃ │ │PCIP ,,,192.168.1.1;10.2.22.1,,1 或 PCIP ,,,,,1 //启用网卡 或 PCIP ,,,,,0 //禁用网卡 ┃ ┃ │ │PCIP ? IP,MASK,GW,DNS,0?NAME,MAC,LINK //多IP多DNS空格间隔 或 PCIP *fresh //刷新 ┃ ┃ │ │PCIP 192.168.1.2;192.168.2.2,255.255.255.0;255.255.255.0,192.168.1.1,192.168.1.1 //多IP ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※如果没有安装网卡驱动或已禁用网卡或系统不支持网络功能,执行该命令可能没有效果; ┃ ┃ │ │※该命令的参数较多,通常应用的是示例1(设置第一网卡的IP不操作启用)或示例2(自动获得IP和DNS)。 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'PINT' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│PINT <文件名称>,[菜单名称|菜单标识|#字符串ID] ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│将 EXE 或 LNK 文件 Pin 到"开始菜单"或"任务栏",NT5.x系统只支持"开始菜单"。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │参数│■文件名称: EXE、LNK 等文件名,要带路径和扩展名,支持环境变量解释; ┃ ┃ │ │■菜单名称: EXE、LNK文件右键菜单对应的字符串,如"附到「开始」菜单(&U)"、"锁定到任务栏(&K)";┃ ┃ │ │ 建议只写前部分,"U)"等快捷键标识不写的好; ┃ ┃ │ │■菜单标识: 可以用"StartMenu"或"TaskBand",前者表示Pin到"开始菜单",后者表示Pin到"任务栏"; ┃ ┃ │ │■字符串ID: 数值,"附到「开始」菜单("、"锁定到任务栏("在SHELL32.DLL资源字符串的序号。 ┃ ┃PINT├──┼──────────────────────────────────────────────┨ ┃ │示例│PINT %SystemRoot%\Regedit.EXE,StartMenu 或 PINT %SystemRoot%\Regedit.LNK,附到「开始」菜单 ┃ ┃ │ │PINT %SystemRoot%\Regedit.EXE,TaskBand 或 PINT %SystemRoot%\Regedit.LNK,锁定到任务栏(&K) ┃ ┃ │ │PINT %WinDir%\System32\calc.exe,#5381 或 PINT %WinDir%\System32\calc.LNK,#5386 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※该命令需系统功能的支持,在一些精简系统或XP、2003系统中可能因功能的精简或欠缺而无法实现; ┃ ┃ │ │※"菜单名称"、"菜单标识"和"字符串ID"3个参数只取其一,当3个参数均省略时表示Pin到"开始菜单"; ┃ ┃ │ │ 这3个参数因系统而异,建议使用系统的"菜单名称"(如“附到「开始」菜单(&U)”)来表示; ┃ ┃ │ │※"菜单名称"原理上可以用系统右键菜单的其它项目,来实现一定的功能,如用"打开(&O)"来打开文件。┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'PUTF' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│PUTF <文件名称>,[起始位置],<数据队列> ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│以 BINARY 形式修改指定文件的数据。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │参数│■文件名: 已存在的文件名,支持环境变量解释; ┃ ┃ │ │■起始位置: 数值,相对于文件基址的起始位置,支持16进制数值,如 0x100;从0开始。默认0。 ┃ ┃ │ │ 可带TGMKS后缀。 ┃ ┃PUTF│ │■数据队列: 数值,从起始位置开始写入的数据,多个数值之间用空格分隔,如 0x00 ┃ ┃ │ │ 0x23 0xAD 0x1C 128。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│PUTF %CurDir%\Memu.DAT,0x400,0x23 0xAD 0x1C 0x80 0x6F ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※PUTF命令修改文件的起始位置是相对于文件基址的,并以复盖方式修改文件,不会改变文件的长度;但┃ ┃ │ │ 新文件不受长度限制。 ┃ ┃ │ │※以 BINARY 方式读取文件的对应命令是 GETF; ┃ ┃ │ │※以字符串方式读取文件或修改文件的命令为 READ 命令和 WRIT 命令。 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'RADI' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│RADI [-right] [-center] [*] ┃ ┃ │ │ <单选框名称>,<单选框形状>,[单选框标题],[单选框事件],[单选框状态],[单选框组ID] ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│在_SUB定义的窗口内建立一个单选框控件。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │参数│ <单选框名称>前的 * 表示退出代码块或函数时自动回收。 ┃ ┃ │ │■单选框名称: 字符串,单选框的名称应是唯一的,不能与其它控件名称或环境变量名称同名。 ┃ ┃ │ │■单选框形状: 单选框位置和大小,格式为,左上宽高均为数值。 ┃ ┃ │ │■单选框标题: 单选框上的文字,用于描述单选框的功能或说明。 ┃ ┃ │ │■单选框事件: 点击该复选框时执行的命令,必须是 WinCMD 支持的有效命令。 ┃ ┃RADI│ │■单选框状态: 数字,1或-1为钩选状态,0,2或-2为没有钩选,小于0为灰色不可用状态,±16不可见。┃ ┃ │ │■单选框组ID: 数字,默认为0,可以将多个单选框分组,组内的单选框可以多选一,组间互不影响。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│RADI RadioButton1,L32T314W100H20,卸载WimShExt.DLL,ENVI @Group1=%RadioButton1%,1,1 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※RADI命令一般位于_SUB命令和_END命令之间,参照_SUB、CALL命令说明。 ┃ ┃ │ │※要设置单选框标题,可使用 "ENVI @单选框名称=单选框标题" 来设置,参照 ENVI 命令的说明。 ┃ ┃ │ │※可用"ENVI @单选框名称.Check=数值"来设置单选框钩选状态,数值0为未钩选状态;非0为钩选状态。 ┃ ┃ │ │※可用"ENVI @单选框名称.Enable=数值"来设置单选框可用状态,数值0为禁用状态;非0为可用状态。 ┃ ┃ │ │※可用"ENVI @单选框名称.Visable=数值"来设置可见状态;0为不可见,非0为可见。 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'RAMD' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│RAMD [P可用内存百分数] [L最小值] [H最大值] <===旧格式 ┃ ┃ │ │RAMD <驱动名称>[,磁盘大小][,磁盘格式][,盘符字母][,磁盘卷标][,压缩标志] <===新格式 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│设置RamDisk大小. 变量名返回结果 [详见Imdisk帮助.txt] ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃RAMD│参数│■驱动名称: Ramdriv 或 ImDisk;最大值、最小值均为MB。 ┃ ┃ │ │■磁盘大小: 单位为 MB,用 Pxx Lyy Hzz 定义,xx为可用内存百分数,yy为最小值,zz为最大值; ┃ ┃ │ │■磁盘格式: 支持 FAT、FAT32、NTFS 三种格式,设置时将按参数格式化,省略时不对磁盘作格式化; ┃ ┃ │ │■盘符字母: 为 ImDisk 虚拟内存盘分配的盘符,使用 Ramdriv 驱动时该参数及"磁盘卷标"均要省略; ┃ ┃ │ │■磁盘卷标: 使用 ImDisk 驱动时格式化磁盘时设置的卷标。 ┃ ┃ │ │■压缩标志: 1:NTFS压缩 0或空:不压缩。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│RAMD P20 L32 H64 ┃ ┃ │ │RAMD ImDisk,L64,NTFS,B:,ImDisk1 或 RAMD Ramdriv,P20L32H64 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│三个参数都可单独使用,如使用 RAMD P10 时,将可用内存的10%设置为RamDisk。 ┃ ┃ │ │※使用 Ramdriv 驱动时由驱动分配盘符并格式化;使用 ImDisk 驱动时可由 PECMD 分配盘符并格式化;┃ ┃ │ │※使用 ImDisk 驱动时可用该命令给指定的虚拟盘扩容,如 RAMD ImDisk,L128,NTFS,B:,ImDisk2 ┃ ┃ │ │※Pxx Lyy Hzz 三个参数可单独使用,PECMD限定的最小值为1MB,最大值(X86系统2GB,X64系统32GB); ┃ ┃ │ │※使用 WinMount.SYS 驱动挂载 WIM 映像建议用 ImDisk 虚拟盘,小容量的磁盘不能格为 FAT32格式; ┃ ┃ │ │※命令若执行成功,进程环境变量 %CurRamDisk% 即为盘符,可按需用 ENVI 设置成系统环境变量。 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'READ' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│READ <文件名称>,[读取位置],[变量名称] ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│以字符串(行)的形式读取指定文件的数据。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │参数│■文件名称: 已存在的文件名,支持环境变量解释; ┃ ┃READ│ │■读取位置: 行号,小于0表示读取行数,0表示最后一行,其余数值读取指定的行号,支持16进制数值;┃ ┃ │ │ 默认1. ┃ ┃ │ │■变量名称: 字符串,用于保存读取结果的的变量名。默认READLINE。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│READ %CurDir%\Memu.LST,10,CurLine 或 READ %CurDir%\Memu.LST,0,LastLine ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※READ命令只适用于读取纯文本文件,如菜单配置文件。 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'RECY' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│RECY <分区标识>,<最大容量> //NA ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│设置 Windows 系统回收站,支持 XP/2003/VISTA/Windows7 及其 WinPE 系统。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │参数│■分区标识: 用分区盘符或"*:\"来表示,分区盘符表示指定分区,"*:\"表示所有分区,"\"可以省略。 ┃ ┃RECY│ │■最大容量: 数值,表示回收站的最大空间,NT5.x系统表示百分数,NT6.x系统表示以MB为单位的容量;┃ ┃ │ │ 当数值为0时表示禁用指定分区的回收站功能,被删除的文件将不会移到回收站中。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│NT5.x系统: RECY D:,10或RECY E:,0或RECY *:,0 NT6.x系统: RECY C:,2048或RECY D:\,0或RECY *:\,0┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※在NT5.x系统中最大容量超30时,PECMD会使用默认值10;WinPE 中该命令建议放在 INIT 命令后使用。┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'REGI' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│REGI [前导]<\子项\><键名,变量名> ┃ ┃ │ │REGI [前导]<\子项\>[[键名][操作符][[类型符]数据值]] ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│读取或设置、删除注册表数据。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │参数│■前导符 "$"、"#"、"@"、"*"或"**"、"~" 或"~~"分别表示读取注册表中的REG_SZ、REG_DWORD、 ┃ ┃ │ │ REG_BINARY 、REG_MULTI_SZ、REG_EXPAND_SZ类型数据。写入时可表示数据类型。~~表示再解┃ ┃ │ │ 释其中环境变量。**表示读时子串"\0"解释为"\\0", 写时相反。 ┃ ┃ │ │■子项名 所选 ROOTKEY 下注册表项的完整名。也可以直接用HKEY_LOCAL_MACHINE等 ┃ ┃ │ │■键值名 要操作的键值名。省略则操作默认键值;如果操作符为"!"且没有"=",则用于删除整个子项。┃ ┃ │ │■变量名 变量名用于保存返回值。有逗号但没有名字则为RegDat。无逗号设置、删除注册表数据。 ┃ ┃REGI│ │■操作符 操作符"!"为删除整个子项;操作符"="且没有数据为删除;操作符"="且有数据为设置数据。 ┃ ┃ │ │■类型符 数据类型。省略为字符串;"#"为REG_DWORD类型数据,如"#0x20";"@"为REG_BINARY类数据,┃ ┃ │ │ 如"@23 34 90 255"。"*"为REG_MULTI_SZ,如"*string1\0str2\0\0" 。"~"为REG_EXPAND_SZ ┃ ┃ │ │ 如"~%SystemRoot%\System32" 。强烈建议用前导符表示数据类型,以避免和字符串混淆。 ┃ ┃ │ │ 前导符优先。 ┃ ┃ │ │■数据值 字符串空值用""表示、REG_DWORD类型数据、REG_BINARY类型数据支持16进制数值。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│REGI HKCU\SOFTWARE\PECMD\Version=#1200 、REGI $HKCR\lnkfile\IsShortcut= ┃ ┃ │ │REGI $HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Cache,IECache ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※此命令比较复杂,请仔细看说明,示例3为读取IE缓存的位置。 ┃ ┃ │ │删除> REGI HKCU\abc= 或 TEAM REGI HKCU\abc=| ┃ ┃ │ │空串> REGI HKCU\abc="" 或 TEAM REGI HKCU\abc= | ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'RSTR' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│RSTR <变量名><=><数目>,<字符串> ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│从指定"字符串"的右边截取指定数目的字符,并将结果返回给指定名称的变量。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │参数│■变量名: 用于保存命令结果的变量名; ┃ ┃RSTR│ │■字符串: 源字符串,长度不限; ┃ ┃ │ │■数 目: 指定截取字符的数目。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│RSTR aStr=2,1234567890 或 RSTR aStr=5,1234567890 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※当"数值"小于1时或超出源字符串的长度时,返回结果为整个源字符串(相当于字符串复制); ┃ ┃ │ │※该命令按 Unicode 字符串处理,示例1的返回值为"90",示例2的返回值为"67890"。 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'RUNS' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│RUNS <程序命令>,<启动项名称> ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│设置Windows的启动项 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │参数│■程序命令为EXE、CMD、BAT各种可执行的命令,可带参数;启动项名称为文字。 ┃ ┃RUNS├──┼──────────────────────────────────────────────┨ ┃ │示例│RUNS PECMD.EXE EXEC !%CurDrv%\外置程序\DRIVER\STARTDRIVER.CMD,安装驱动。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※原REGI命令可实现相同的功能,只是用REGI命令表示需要文字太长,才将这一功能单独做成一条命令。┃ ┃ │ │ 程序命令和启动项名称半角英文",",可用全角中文","代替或变量传入。 ┃ ┃ │ │※本命令不能在命令行中使用,只能在配置文件中使用。 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'SCRN' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│SCRN [变量名1],[变量名2] ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│返回屏幕当前的宽和高。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃SCRN│参数│■变量名: 用于保存屏幕当前宽和高的变量名; ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│SCRN ScrW,ScrH ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※变量名不能和已存在的变量名相同,当命令出错时两变量的返回结果均为空值或数值0 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'SEND' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│SEND <按键代码1[_|^]>[,按键代码2][,按键代码3]... ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│模拟按键。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃SEND│参数│■虚拟按键代码,如VK_NUMLOCK,详情可参后面虚拟键列表及相关编程资料。如果按键代码以"_"结束, ┃ ┃ │ │ 则仅模拟按键按下;"^"则仅模拟按键弹起;否则模拟按下并弹起。 ┃ ┃ │ │■按键: 简单按键("A"~"Z"或"0"~"9")可用字母表示;其它按键要用前导符"#"连虚拟按键代码表示, ┃ ┃ │ │ 如果按键代码以"_"结束,则仅模拟按键按下;"^"则仅模拟按键弹起;否则模拟按下并弹起。 ┃ ┃ │ │ 支持0x开头或长度>=2的没有#前导的编码。 ┃ ┃ │ │ 支持VK_的名字串 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│SEND #0x12_,#0x09_,#0x09^,#0x12^ 或 SEND VK_NUMLOCK ┃ ┃ │示例│SEND 0x12_,0x09_,0x09^,0x12^ //旧格式 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│上面的示例模拟 Alt+Tab。按键代码支持 16 进制和十进制。旧格式没有 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'SERV' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│SERV [!]<服务名称> ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│启动或停止服务或驱动程序。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃SERV│参数│■指定服务名称。前导"!"表示停止服务,否则启动服务。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│SERV FBWF ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│可用此命令来启动FBWF服务(如果安装了的话),以增加系统盘的可写空间,这样PE就能在光盘上运行了。┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'SHEL' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│SHEL <文件名(含路径)> ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│加载指定的SHELL,并将SHELL锁定。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │参数│■SHELL文件名(含路径,可使用环境变量) ┃ ┃SHEL├──┼──────────────────────────────────────────────┨ ┃ │示例│SHEL %SystemRoot%\EXPLORER.EXE ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※本命令功能与EXEC $相似,修改进程中关机代码(挂接"ExitWindowsEx"函数)。 ┃ ┃ │ │※本命令同时具有锁定SHELL的功能,当SHELL被杀时能自动加载SHELL。 ┃ ┃ │ │※本命令建议与HIDE命令一起使用,可以达到较好的目的。 ┃ ┃ │ │※本命令不能在命令行中使用,只能在配置文件中使用。 ┃ ┃ │ │※SHEL命令必须在 HOTK 和 HIDE 命令之后。 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'SHOW' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│SHOW [=1] [*&-] [磁盘分区],[盘符字母],[等待时间],[起始盘符] ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│显示系统存在的移动硬盘、固定硬盘的隐藏分区或沒有加载的分区,并给这些分区分配盘符。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │参数│■&表示局部模式,其它进程很可能看不到。加载时*为持久加载;卸载时*为全部卸载,否则为最近的加 ┃ ┃ │ │ 载。-为卸载。=1 为如果已经加载,就不加载。 ┃ ┃ │ │■磁盘分区: 由 [硬盘号或标识符:分区号或标识符#分区号] 组成,"硬盘号"与"标识符"只取其一。 ┃ ┃ │ │ ◆硬盘号: 用数值表示,小于"0"表示所有的硬盘、U盘和移动硬盘,"0"表示"hd0","1"表 ┃ ┃ │ │ 示"hd1","2"表示"hd2","3"表示"hd3",依次类推; ┃ ┃ │ │ ◆标识符: 用"F"或"U"表示,"F"表示固定硬盘,"U"表示U盘或USB移动硬盘; ┃ ┃ │ │ ◆分区(逻辑)号: 用数值表示,小于"0"表示全部还没有盘符的分区,"0"表示全部还没有盘┃ ┃ │ │ 符的可见分区,"1"表示第1分区,"2"表示第2分区,"3"表示第3分区,依┃ ┃ │ │ 次类推;为空或-则删除。#后的为物理分区号。1-4为主分区,5-N 为逻┃ ┃ │ │ 辑分区。 ┃ ┃SHOW│ │■盘符字母: 用字母"A~Z"表示,省略"盘符字母"或设置盘符不合理时自动分配盘符。 ┃ ┃ │ │ 可以是汉字。 汉字可以解决盘符不足,同时很私密(不能被列表),按需加载、卸载。 ┃ ┃ │ │■等待时间: 数字,表示为设备就绪等待若干时间(毫秒)后才执行分配盘符的功能。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│SHOW 0:1,H 或 SHOW U:1,U 或 SHOW F:0 或 SHOW U:0,,3000 或 SHOW U:-1 或 SHOW 0:-1 或 SHOW ┃ ┃ │ │SHOW 0#1,H 或 SHOW 0:1 或 SHOW 0#1 或 SHOW - 0:1 或 SHOW - 0#1 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※某些型号的机子在系统启动后已经可以识别移动硬盘,但没有为移动硬盘指派盘符,可以通过 SHOW 命┃ ┃ │ │ 令的"U"标识符为移动硬盘分配盘符,示例2表示给"移动硬盘的第1分区"指派为盘符"U:"; ┃ ┃ │ │※示例1表示"硬盘0分区1"指派为盘符"H:",示例3表示自动为"固定硬盘的所有可见分区"指派盘符; ┃ ┃ │ │※通常"等待时间"可以省略,"等待时间"是驻留内存的PECMD在检测到移动硬盘插入时内部使用的变量; ┃ ┃ │ │※省略所有参数的SHOW命令不会主动载入隐藏分区,要载入隐藏分区,"分区号"必须设置为数值"-1"; ┃ ┃ │ │※删除盘符可用SHOW或SUBJ命令,可载入隐藏分区的外置程序并保持原分区隐藏属性。 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'SHUT' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│SHUT [E|O数字|C|R|L|H|S] ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│关闭或重启计算机。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │参数│■无参数 : 默认为关闭系统; ┃ ┃ │ │■参数"E": 先弹出光驱,等待10秒; ┃ ┃ │ │■参数"O数字": 先弹出光驱,等待数字指定的毫秒数,默认10000毫秒(10秒) ┃ ┃ │ │■参数"C": 关闭光驱; ┃ ┃ │ │■参数"H": 执行休眠操作,系统必须支持休眠(可以在控制面板的电源选项启用休眠); ┃ ┃SHUT│ │■参数"L": 执行注销用户操作; ┃ ┃ │ │■参数"R": 执行重启系统操作; ┃ ┃ │ │■参数"S": 执行挂起系统操作。碰到其它字符如(-)即返回 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│SHUT H ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※可在"EXEC"命令的时候指定挂接"ExitWindowsEx"函数,配合此命令使用,将拦截所有的关闭系统调 ┃ ┃ │ │ 用,达到正确关闭的目的(注意,此功能是快速关机,可能不会保存所有数据)。 ┃ ┃ │ │※如果不能给 U 盘、USB移动硬盘等设备及时分配盘符或者关机缓慢,请尝试重启 AudioSrv 服务(对于┃ ┃ │ │ 部分 SIGMATEL HD 系列集成声卡有用) ┃ ┃ │ │※TEAM EXEC =PECMD SERV !AudioSrv|SERV AudioSrv ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'STRL' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│STRL <变量名><=><字符串> ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│返回指定"字符串"的长度。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃STRL│参数│■变量名: 用于保存命令结果的变量名; ┃ ┃ │ │■字符串: 被检测的字符串,长度不限; ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│STRL iLen=1234567890 或 STRL dLen=一二三四五 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※该命令的返回结果是Unicode字符串的长度,示例1的返回值为10,示例2的返回值为5 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'SUBJ' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│SUBJ [*&-]<虚拟驱动器>,[指派给虚拟驱动器的路径] ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│将路径与驱动器号关联,相当于CMD的 SUBST 命令。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃SUBJ│参数│■&为局部模式,其它进程很可能看不到。加载时*为持久加载;卸载时*为全部卸载,否则为最近的加载 ┃ ┃ │ │■如果省略"指派给虚拟驱动器的路径"或带-,则删除指定的虚拟驱动器。虚拟驱动器可以中文。 ┃ ┃ │ │ 路径可以是物理设备,如\Device\HarddiskVolume7。一个盘符可以连续加载不同位置,看到的是最后 ┃ ┃ │ │ 的。不带*卸载将看到相反的过程。带-卸载为卸载后面指定目标。 汉字可以解决盘符不足,同时很私 ┃ ┃ │ │ 密,按需加载、卸载。一个设备可以多次加载。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│SUBJ B:,D:\My 或 SUBJ *毛:,\Device\HarddiskVolume7 或SUBJ *毛:,\Device\Harddisk0\Partition1 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※虚拟时,虚拟驱动器须是不存在的;删除虚拟驱动器时,盘符必须准确,否则可能会删除物理驱动器。┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'TEAM' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│TEAM 命令1|命令2|命令3|命令4|命令5|......|命令n ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│按顺预执行指定命令群组中的各条命令。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃TEAM│参数│■一条或多条命令,多条命令之间用"|"分开。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│TEAM TEXT 载入桌面|LOGO|HIDE|SHEL %SystemRoot%\EXPLORER.EXE|WAIT 3000 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※本命令与IFEX或FIND命令不能嵌套使用。 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'TEMP' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│TEMP [[@]Delete|Setting][,变量名] ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│清理用户临时文件夹或重新设用户置临时文件夹的位置。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃TEMP│参数│■Delete表示清理临时目录,前导@表示不经用户确认直接清理;Setting表示重新设置临时目录的位置。┃ ┃ │ │■变量名 返回旧的或新设的临时目录。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│TEMP Delete ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※不要在配置文件使用本命令,必须启动到桌面使用;本命令是从注册表读取临时目录位置。 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'THREAD' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│THREAD[&][*] 命令组 ┃ ┃ T ├──┼──────────────────────────────────────────────┨ ┃ H │功能│启动一个线程,运行一命令(组)。 ┃ ┃ R ├──┼──────────────────────────────────────────────┨ ┃ E │参数│■任何合法命令或命令组。&表示强制变为PE变量,能最简单变多线程。&*无顺序。*为保持父子关系,┃ ┃ A │ │包刮窗口,等子线程结束,只有这样才能操作父线程(已有线程安全)。默认为独立模式,彼此没有关系。┃ ┃ D ├──┼──────────────────────────────────────────────┨ ┃ │示例│THREAD CALL Hello a1 a2 a3 ┃ ┃ │ │TEAM THREAD* CALL @菜单01| CALL @WIN1 //同时开两个窗口 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'UPNP' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│UPNP [$]<参数> ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│执行 BartPE.EXE 的功能。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │参数│■前导"$" 表示显示 BartPE.EXE 的执行界面; ┃ ┃UPNP│ │■参数为 BartPE.EXE 的命令行参数。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│UPNP -pnp 或 UPNP $-pnp ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※本命令内钳新版 BartPE.EXE 执行代码,WinPE 无需 BartPE.EXE 文件也可完成 BartPE.EXE 的功能;┃ ┃ │ │※本命令只支持NT5.x系列PE且为阻塞模式执行,命令完成后才执行下一条命令;注意参数及其大小写。 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'WAIT' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│WAIT [-][时间(毫秒)] ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│☆前导"-" : 在指定的等待时间内遇到任何按键即中止等待,否则直至等待时间结束; ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │参数│■指定时间,单位为毫秒。 ┃ ┃WAIT├──┼──────────────────────────────────────────────┨ ┃ │示例│WAIT 5000 或 WAIT 0,PKey ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※如,可在执行SHELL后等一段时间,然后执行"LOGO"命令关闭登录画面;或者执行其它操作。另外,如 ┃ ┃ │ │ 确实需在登录后运行某程序,可在启动组或"HKCU\Software\Microsoft\Windows\CurrentVersion\Run"┃ ┃ │ │ 中创建快捷方式。WAIT 不阻塞图形界面。-del模式用于清理临时文件(夹),会定期重试直到删除成功 ┃ ┃ │ │※参数为0则暂停,任意键继续,可连续反复使用;WAIT 0/-N可检测用户的按键。'A'~'Z'或'0'~'9',┃ ┃ │ │ 直接返回,否则以0xNN的形式返回。变量名默认为PressKey。 ┃ ┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'WRIT' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│WRIT <文件名称>,[修改位置],[文件数据] ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│以字符串(行)的形式修改指定文件的数据。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │参数│■文件名称: 合法的文件名,支持环境变量解释;-为标准输出,--为标准错误输出,忽略位置。 ┃ ┃ │ │■修改位置: 由前导"$"、"+"、"-"和行号组成,格式为"[$][+|-]<行号>"; 默认为+0。 ┃ ┃ │ │ 前导"$"表示将"文件数据"内的环境变量展开; ┃ ┃ │ │ 前导"+"表示在指定行号位置用"文件数据"加插一行; ┃ ┃WRIT│ │ 前导"-"表示删除指定行号的一行; ┃ ┃ │ │ 省略"+"和"-"时表示用"文件数据"替换指定的一行; ┃ ┃ │ │ 行号用数值表示,"0"表示操作最后一行,行号设置不合理时 WinCMD 将不作任何操作。 ┃ ┃ │ │■文件数据: 字符串,用于加插或替换文件中某行的数据,修改位置带前导"$"时支持环境变量解释。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│WRIT C:\BOOT.INI,+0,C:\AVLDR.NT6=Window_7_PE 或 WRIT C:\BOOT.INI,+0,C:\AVLDR.NT5=Window_PE ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │备注│※WRIT命令只适用于修改纯文本文件,如CMD、BAT批处理文件和菜单配置文件; ┃ ┃ │ │※WRIT命令和LOOP命令必须位于单独一行,不能套在 FIND、IFEX、TEAM 命令内。 ┃ ┗━━┷━━┷━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ 关于 PECMD - WinPE Commander 的特别声明 ┃ ┣━━┯━━┯━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│ '致谢' ┃ ┃ ├──┴──────────────────────────────────────────────┨ ┃ │◎感谢 Lxl1638 公开 PECMD2.4 的源代码,PECMD2012是参考PECMD2.4,重新设计而成。 ┃ ┃ │◎感谢 Yonsm 公开 XCMD 的源代码,PECMD是在 XCMD V2.2版的基础上补充完善而成。 ┃ ┃ │◎感谢 无忧论坛网友的建议。 ┃ ┃致谢│◎感谢 无忧论坛 提供的讨论场所。 ┃ ┃ │◎感谢 qinjg8008 提供设置虚拟内存的源代码。 ┃ ┃ │◎感谢 Sherpya 公开 XPE Plugin 的全套源代码。 ┃ ┣━━┿━━┯━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'许可' ┃ ┃ ├──┴──────────────────────────────────────────────┨ ┃ │PECMD2012 NonCopyRight 许可: ┃ ┃ │◎任何个人和组织(含商业组织)可随意免费使用,逆向工程,破解... ┃ ┃ │◎如果您使用或修改了其中任何源代码,则强烈建议把使用这些源代码的项目以及项目内的所有源代码公开。 ┃ ┃ │ 对商业组织,可以不公开源代码,但必须公开开发接口及其文档。 ┃ ┃ │◎尽量保持版本的一致性。 ┃ ┃ │◎内部使用不受此限制。 ┃ ┃ │DSystem mdyblog.blog.163.com 2012.1.22 ┃ ┃ ├─────────────────────────────────────────────────┨ ┃ │旧许可: ┃ ┃ │◎本程序及其源代码是可以免费获取的。 ┃ ┃ │◎如果您使用或修改了其中任何源代码,则必须把使用这些源代码的项目以及项目内的所有源代码和文档公开。┃ ┃ │ 否则禁止使用本程序源代码的任何部分。 ┃ ┃ │◎您可复制、分发和传播无限制数量的软件产品,但您必须保证每一份复制、分发和传播必须是完整和真实的,┃ ┃ │ 包括所有本软件产品的软件、电子文档,版权和商标宣言。 ┃ ┃ │◎作者特申明对本软件产品之使用不提供任何保证,不对任何用户保证本软件产品适用性,不保证无故障产生;┃ ┃许可│ 亦不对任何用户使用此软件所遭遇到的任何理论上的或实际上的损失承担责任。 ┃ ┃ │◎如果您使用本软件,即表示已经默认接受了此协议。 ┃ ┃ │◎要获取更多信息,请访问 WWW.YONSM.NET、BBS.WUYOU.COM。 ┃ ┃ │ ┃ ┃ │Yonsm Lxl1638 ┃ ┃ │Yonsm@163.com Lxl1638@21cn.com ┃ ┃ │WWW.Yonsm.NET BBS.WUYOU.COM ┃ ┃ │2007.1.24,杭州 07.03.01,茂名二中┃ ┗━━┷━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ 1.按键的值(虚拟键Virtual Key,是windows重新定义的(键面)键值. 对应WM_KEYDOWN的wParam) ----['keyboxvl'] 按键 键值 键值│ 按键 键值 键值 │ 按键 键值 键值 VK_LBUTTON 0x01 1 │ VK_PRINT 0x2A 42 │ VK_F9 0x78 120 VK_RBUTTON 0x02 2 │ VK_EXECUTE 0x2B 43 │ VK_F10 0x79 121 VK_CANCEL 0x03 3 │ VK_SNAPSHOT 0x2C 44 │ VK_F11 0x7A 122 VK_MBUTTON 0x04 4 │ VK_INSERT 0x2D 45 │ VK_F12 0x7B 123 VK_BACK 0x08 8 │ VK_DELETE 0x2E 46 │ VK_F13 0x7C 124 VK_TAB 0x09 9 │ VK_HELP 0x2F 47 │ VK_F14 0x7D 125 VK_CLEAR 0x0C 12 │ VK_0-VK_9 (0x30-0x39) 48- │ VK_F15 0x7E 126 VK_RETURN 0x0D 13 │ VK_A-VK_Z (0x41-0x5A) 65- │ VK_F16 0x7F 127 VK_SHIFT 0x10 16 │ VK_LWIN 0x5B 91 │ VK_F17 0x80 128 VK_CONTROL 0x11 17 │ VK_RWIN 0x5C 92 │ VK_F18 0x81 129 VK_MENU 0x12 18 │ VK_APPS 0x5D 93 │ VK_F19 0x82 130 VK_PAUSE 0x13 19 │ VK_NUMPAD0 0x60 96 │ VK_F20 0x83 131 VK_CAPITAL 0x14 20 │ VK_NUMPAD1 0x61 97 │ VK_F21 0x84 132 VK_KANA 0x15 21 │ VK_NUMPAD2 0x62 98 │ VK_F22 0x85 133 VK_HANGEUL 0x15 21 │ VK_NUMPAD3 0x63 99 │ VK_F23 0x86 134 VK_HANGUL 0x15 21 │ VK_NUMPAD4 0x64 100 │ VK_F24 0x87 135 VK_JUNJA 0x17 23 │ VK_NUMPAD5 0x65 101 │ VK_NUMLOCK 0x90 144 VK_FINAL 0x18 24 │ VK_NUMPAD6 0x66 102 │ VK_SCROLL 0x91 145 VK_HANJA 0x19 25 │ VK_NUMPAD7 0x67 103 │ VK_LSHIFT 0xA0 160 VK_KANJI 0x19 25 │ VK_NUMPAD8 0x68 104 │ VK_RSHIFT 0xA1 161 VK_ESCAPE 0x1B 27 │ VK_NUMPAD9 0x69 105 │ VK_LCONTROL 0xA2 162 VK_CONVERT 0x1C 28 │ VK_MULTIPLY 0x6A 106 │ VK_RCONTROL 0xA3 163 VK_NONCONVERT 0x1D 29 │ VK_ADD 0x6B 107 │ VK_LMENU 0xA4 164 VK_ACCEPT 0x1E 30 │ VK_SEPARATOR 0x6C 108 │ VK_RMENU 0xA5 165 VK_MODECHANGE 0x1F 31 │ VK_SUBTRACT 0x6D 109 │ VK_PROCESSKEY 0xE5 229 VK_SPACE 0x20 32 │ VK_DECIMAL 0x6E 110 │ VK_ATTN 0xF6 246 VK_PRIOR 0x21 33 │ VK_DIVIDE 0x6F 111 │ VK_CRSEL 0xF7 247 VK_NEXT 0x22 34 │ VK_F1 0x70 112 │ VK_EXSEL 0xF8 248 VK_END 0x23 35 │ VK_F2 0x71 113 │ VK_EREOF 0xF9 249 VK_HOME 0x24 36 │ VK_F3 0x72 114 │ VK_PLAY 0xFA 250 VK_LEFT 0x25 37 │ VK_F4 0x73 115 │ VK_ZOOM 0xFB 251 VK_UP 0x26 38 │ VK_F5 0x74 116 │ VK_NONAME 0xFC 252 VK_RIGHT 0x27 39 │ VK_F6 0x75 117 │ VK_PA1 0xFD 253 VK_DOWN 0x28 40 │ VK_F7 0x76 118 │ VK_OEM_CLEAR 0xFE 254 VK_SELECT 0x29 41 │ VK_F8 0x77 119 │ VK_POWER 0xFF 255 VK_ALT 0x12 18 │ VK_LALT 0xA4 164 │ VK_RALT 0xA5 165 //MENU键 就是 ALT键 VK_XBUTTON1 0x05 5 //Windows 2000/XP: X1 mouse button VK_XBUTTON2 0x06 6 //Windows 2000/XP: X2 mouse button 键面 按键 键值 键值 替代串1 替代串2 替代串3 替代串4 ;: VK_COLON 0xBA 186 ;: ; : =+ VK_EQU_ADD 0xBB 187 =+ = + ,< VK_LITTLE 0xBC 188 ,< , < -_ VK_SUB_BUTTOM 0xBD 189 -_ - _ .> VK_GREAT 0xBE 190 .> . > /? VK_QUESTION 0xBF 191 /? / ? `~ VK_SWAVE 0xC0 192 `~ ` ~ [{ VK_PRESCRAP 0xDB 219 [{ [ { VK_前中挂号 \| VK_PIPE 0xBC 220 \| \ | ]} VK_POSTSCRAP 0xBD 221 ]} ] } VK_后中挂号 '" VK_QOUTE 0xBE 222 '" ' " 2.内置初始化脚本 脚本文本 直接加入 资源 SCRIPTINI\100\2052 启动时先自动执行初始化,然后正常流程。 3.脚本内置: 脚本文本 直接加入 资源 SCRIPT\101\2052 启动时自动执行,并把命令行参数当作该脚本的参数。 脚本中可以直接引用。如 LOAD #101 或 LOAD #102 4.脚本转化为一个命令行的方法: 1>先去掉所有的注释。2>将所有的"空格;;空格" 替换为"空格;;;空格"(更多;均加一个;). 3>将所有的换行替换为 "空格;;空格".(空格仅指0x20 ) 前面再加一个"/L "开关(表示多行,可小写),这就是新的命令行参数。/L开关不传入程序当参数,第一行作程序参数. /l则第一行兼作命令;/L则命令从第二行开始。 在线命令行, 按下 Ctrl-Enter, (在内存中)执行该脚本。点击<执行>下面的数字,可改变高度。 5.注释 ;或`或// ,且在行首或前有一个空字符,该空字符算注释。 如何输入行尾空字符?用TEAM 命令,在行尾空格后放一个|及下一命令,只放一个|也可以。或者最后部分用变量传入, 如%SPACE%。 命令行 中默认关闭注释;脚本 中 默认开启注释。 6.可以从资源中删除本帮助 7.分区类型操作数,16进制 ----['fenqutype'] 0 空(彻底隐藏) 1c 隐藏Win95FAT32LBA 70 DiskSecure Mult bb Boot Wizard hid 1 FAT12 1e 隐藏Win95FAT16LBA 75 PC/IX be Solaris boot 2 XENIX root 24 NEC DOS 80 Old Minix c1 DRDOS/sec (FAT- 3 XENIX usr 39 Plan 9 81 Minix / old Lin c4 DRDOS/sec (FAT- 4 FAT16 <32M 3c PartitionMagic 82 Linux交换分区 c6 DRDOS/sec (FAT- 5 扩展分区 40 Venix 80286 83 Linux c7 Syrinx 6 FAT16 41 PPC PReP Boot 84 隐藏OS/2 C: da Non-FS data 7 HPFS/NTFS 42 SFS 85 Linux扩展分区 db CP/M / CTOS /HIDE_DELL 8 AIX 4d QNX4.x 86 NTFS volume set de Dell Utility 9 AIX bootable 4e QNX4.x 2nd part 87 NTFS volume set df BootIt a OS/2 Boot Manag 4f QNX4.x 3rd part 8e Linux LVM e1 DOS access b Win95 FAT32 50 OnTrack DM 93 Amoeba/隐藏Linu e3 DOS R/O c Win95 FAT32LBA 51 OnTrack DM6 Aux 94 Amoeba BBT e4 SpeedStor e Win95 FAT16LBA 52 CP/M 9f BSD/OS eb BeOS fs f Win95扩展分区LBA 53 OnTrack DM6 Aux a0 IBM Thinkpad hi ee EFI GPT 10 OPUS 54 OnTrackDM6 a5 FreeBSD ef EFI (FAT-12/16/ 11 隐藏FAT12 55 EZ-Drive a6 OpenBSD f0 Linux/PA-RISC b 12 Compaqdiagnost 56 Golden Bow a7 NeXTSTEP f1 SpeedStor 14 隐藏FAT16<32M 5c Priam Edisk a8 Darwin UFS f4 SpeedStor 16 隐藏FAT16 61 SpeedStor a9 NetBSD f2 DOS secondary 17 隐藏HPFS/NTFS 63 GNU HURD or Sys ab Darwin boot fd Linux raid auto 18 AST SmartSleep 64 Novell Netware b7 BSDI fs fe LANstep 1b 隐藏Win95FAT 65 Novell Netware b8 BSDI swap ff BBT 12 HIDE_FAT/Compaqdiagnost 13 btron 2a atheOS AFS 2b Sylstor 32 NOS 35 JFS on os/2 or eCS 7e linux 7f linux d7 HIDE_DELL dd HIDE_DELL bc ATI_SEC_ZONE ◎用本PECMD SHOW 等加载,只要不是0和扩展分区,没有任何区别。 数值主要是给人看的,给自动化软件一个暗示。 ◎本人再加几个,很好理解的。 15 隐藏扩展分区 1f 隐藏Win95扩展分区LBA 95 隐藏Linux扩展分区 ◎有没有办法获取分区ID为0x12的分区原本的文件系统,以及剩余空间? 如果分区没有加载先用 SUBJ 命令临时加载,再 FIND C:\=?,变量名 //查询总空间 字节 IFEX C:\=?,变量名 //查询剩余空间 字节 8.磁盘媒体类型: HEX DEC ----['disktype'] Unknown = 0x00, 0 F5_1Pt2_512 = 0x01, 1 F3_1Pt44_512 = 0x02, 2 F3_2Pt88_512 = 0x03, 3 F3_20Pt8_512 = 0x04, 4 F3_720_512 = 0x05, 5 F5_360_512 = 0x06, 6 F5_320_512 = 0x07, 7 F5_320_1024 = 0x08, 8 F5_180_512 = 0x09, 9 F5_160_512 = 0x0a, 10 RemovableMedia = 0x0b, 11 FixedMedia = 0x0c, 12 F3_120M_512 = 0x0d, 13 F3_640_512 = 0x0e, 14 F5_640_512 = 0x0f, 15 F5_720_512 = 0x10, 16 F3_1Pt2_512 = 0x11, 17 F3_1Pt23_1024 = 0x12, 18 F5_1Pt23_1024 = 0x13, 19 F3_128Mb_512 = 0x14, 20 F3_230Mb_512 = 0x15, 21 F8_256_128 = 0x16, 22 F3_200Mb_512 = 0x17, 23 F3_240M_512 = 0x18, 24 F3_32M_512 = 0x19 25 9.拖放 脚本拖到命令行为编辑。拖到HELP区为显示并执行(可压缩) 10.图标编号 #1为自然编号,内部组号从0开始依次重新编号。(Icon Group) ##1为内部组号。(Icon Group) ###1为内部帧号。(Icon) 11.插件 1》插件类型 (1)脚本: #编号 WCI WCS WCE WCZ (2)可执行文件: EXE COM NTR NTE CMD BAT (3)动态库: DLL DLX 2》初始化 ENVI &&&LoadPlugin=[基本文件名] 基本文件名默认为本PECMD程序名。 基本文件名自动扩展为全路径 基本文件名2 假定 基本文件名2 为 X:\windows\system32\pecmd.exe 则 参考路径 X:\windows\system32\pecmd 多次初始化只执行1次。 可以放到启动脚本中自动初始化。 3.1》内部脚本 内部资源 SCRIPT 下的编号。 可以CMPS压缩 内部插件列表: 资源 INDATA\4 格式: LOAD: 命令名 #编号[+偏移[+长度限制]] 内部插件列表可以CMPS压缩 LOAD: HELLOIN #100 则命令为 HELLOIN HELLOIN A B C 则执行 #100 号内置脚本,参数为" A B C" 3.2》脚本 参考路径.命令[+偏移[+长度限制]].后缀 后缀:WCI WCS WCE WCZ X:\windows\system32\pecmd.HELLO.WCZ 则命令为HELLO 4》可执行文件 参考路径.执行标志命令.后缀 后缀:EXE COM NTR NTE CMD BAT 其中NTR、NTE就是EXE或COM改名 执行标志 为 =!@ 三中的组合 X:\windows\system32\pecmd.=!HELLO2.EXE 则命令为HELLO2 自动为 隐藏等待方式 5》动态库 参考路径.$命令.后缀 后缀:DLL DLX 其中DLX就是DLL改名 X:\windows\system32\pecmd.$HELLO3.DLL 则命令为HELLO3 6》PECMD专门插件库 参考路径.pecmdplugin.*.PEI 命令名表在文件名PEI 内部。 参考源码:PECMD_PLUGIN.插件源码.ZIP 执行优先顺序: PECMD专门插件库 #号码 WCI WCS WCE WCZ EXE COM NTR NTE BAT CMD DLL 找到不再继续查找。 插件 优先于 没有EXEC的外部命令和没有LOAD的WCS。 ◎PE制作关键资料 1》取得所有权限 制作PE时先加上权限管理并取得『管理员所有权限』--针对win7/win8 PE 设PE加载到主机 Z:\PE目录。 命令行执行:takeown /f "Z:\PE" /r /d y & icacls "Z:\PE" /grant administrators:F /t (必须确定系统存在1、takeown; 2、icacls两命令,没有可以从正常系统拷贝过来。) *以上由于权限问题发生*.DLL或驱动无法安装注册成功的原因,多为FAT32文件系统的问题 请在制作PE的时候多留意文件系统是否NTFS或是FAT32。 mdyblog.blog.163.com DSystem