#code=936     //GBK=936  BIG5=950  ASCII=0(default)
#str:10001=\r\n[%d]Found Device: %s
#str:10002=\r\nFound Driver: %s, INF File: %s
#str:10006=Fail to get TEMP env.
#str:10007=FAIL!
#str:10008=TEMP dir is 
#str:10009= .\r\nDo you want to clear TEMP dir now?
#str:10010=Clear Temp Dir
#str:10011= .\r\nDo you want to reset TEMP dir?
#str:10012=Set TEMP dir
#str:10013=//encrypted
#str:10014= H.Compat.
#str://default HOTkey \n 
#str:10015=Ctrl+Alt+A,PECMD.EXE DISP W800H600B16F60\nCtrl+Alt+M, ENVI @@TaskIcoMenu=2
#str://----Tray Menu---
#str:21121=PECMD HELP(&A)...,PECMD.EXE HELP
#str:21122=Resolution 1920×1200 32bit Color 60 Hz,PECMD.EXE DISP W1920H1200B32F60
#str:21123=Resolution 1680×1050 32bit Color 60 Hz,PECMD.EXE DISP W1680H1050B32F60
#str:21124=Resolution 1600×1000 32bit Color 60 Hz,PECMD.EXE DISP W1600H1000B32F60
#str:21125=Resolution 1440×900 32bit Color 60 Hz,PECMD.EXE DISP W1440H900B32F60
#str:21126=Resolution 1920×1080 32bit Color 60 Hz,PECMD.EXE DISP W1920H1080B32F60
#str:21127=Resolution 1600×900 32bit Color 60 Hz,PECMD.EXE DISP W1600H900B32F60
#str:21128=Resolution 1366×768 32bit Color 60 Hz,PECMD.EXE DISP W1366H768B32F60
#str:21129=Resolution 1280×720 32bit Color 60 Hz,PECMD.EXE DISP W1280H720B32F60
#str:21141=Resolution 1280×800 32bit Color 60 Hz,PECMD.EXE DISP W1280H800B32F60
#str:21130=Resolution 1024×768 32bit Color 85 Hz,PECMD.EXE DISP W1024H768B32F85
#str:21131=Resolution 1024×768 32bit Color 60 Hz,PECMD.EXE DISP W1024H768B32F60
#str:21140=Resolution 1024×768 16bit Color 60 Hz,PECMD.EXE DISP W1024H768B16F60
#str:21142=Resolution 1024×600 32bit Color 60 Hz,PECMD.EXE DISP W1024H600B32F60
#str:21132=Auto Resolution ,PECMD.EXE DISP
#str:21133=Safty Resolution,PECMD.EXE DISP W800H600B16F60
#str:21134=Eject all USB Disk(&U),PECMD.EXE EJEC U-
#str:21135=Eject all CDROM(&C),PECMD.EXE EJEC C-
#str:21136=Clean TEMP file(&D)...,PECMD.EXE TEMP DELETE
#str:21137=Reset TEMP DIR(&S)...,PECMD.EXE TEAM TEMP SETTING|ENVI 
#str:21138=SHUTDOWN and Eject CDROM(&E),PECMD.EXE SHUT E
#str:21139=HIDE/SHOW this TRAYICON(&H)    
#str:22000=Resolution %d×%d %dbit Color %d Hz
#str://----Logo WinPE Window, _SUB MESS HELP---
#str://font format:[size][,name][**BbUuIiSs#Weight#Width#CharSet#Quality#Orientation#Escapement#OutPrecision#ClipPrecision#PitchAndFamily]
#str://_SUB Font
#str:01001=9,Courier New
#str://Logo WinPE Window font
#str:01002=10,Courier New
#str://HELP font
#str:01003=western|9~,Courier New
#str://MESS font
#str:01004=9,Courier New
#str:01011=Logon WinPE
#str:01012=&OK
#str:01013=&Cancel
#str:01014=&Abort
#str:01015=&Retry
#str:01016=&Ignore
#str:01017=&Yes
#str:01018=&No
#str:01019=UserName:
#str:01020=Password:
#str:01021=Poweroff
#str:01022=EXEC
#str:01023=TOP
#str:01024=&Fd
NOTICE *║    │▲Attention:
__arg ENVI^ __arg=.
_END
_ENDFILE │_ENDFILE
_SUB
CLASS *║_SUB
WINDOW *║_SUB
FUNC *║_SUB
ADSL
Alias ENVI^ Alias.
BLOCK *║ 代
BASE
BROW
CALC
CALL
CHEK
Clipboard Clipboard=.
cmd │▲If used in command line.
CMPS
CODE
COME
Cur @@Cur=.
DATE
DeskTopFresh @@DeskTopFresh=.
DEVI
DFMT
DIR
DISK
DISP
DLL │'DL
DisX64 ^  DisX64=1.
DROPFILE =DROPFILE,wParam.
DTIM
EATEKEYS @@EATEKEYS=.
EDIT
EJEC
ENVI
EnviBroad ENVI^ EnviBroad=.
EXEC
EXIT
FATTR =FATTR,
FBWF
FDIR
FDRV
FEXT
FILE
FIND
FLNK
FNAM
FONT
FORM
FORX
FPOS ?[StartVarName].
FTIME =FTIME,.
FVAR =FVAR,.
FVER =FVER,.
GETF
GROU
HASH
HELP
HIDE
HIVE
HKEY
HOME
HOTK
IFEX
IMAG
INIT
IMPORT *║ I  │FUNC│
IPAD
ISADMIN ?RetVarName=ISADMIN.
ispe =ispe.
ITEM
KILL
LABE
LAMBDA *║ L  ├
LINK
LIST
LOAD
LoadEnvi ENVI^ LoadEnvi.
LOCK
LOGO
LOGS
LOOP
LPOS
LSTR
MAIN
MDIR
MEMO
memvar memvar=[.
MENU
MESS
MOUN
MouseCapture MouseCapture=.
MSG .MSG=[.
MSTR
NAME
NOTE
NTPC
NUMK
PAGE
PART
PATH
PBAR
PCIP
PEBIT =PEBIT,.
percent percent=.
PINT
POSTMSG .POSTMSG=[.
PPID =PPID,.
PUTF
PWIN =PWIN.
RADI
RAMD
RAND *║RAND├
READ
RECY
REGI
RMENU @@RMENU=.
RPOS
RSTR
RUNS
SBAR
SCRN
SED 
SEND
SENDMSG .SENDMSG=.
SERV
SET 
SHEL
SHOW
SHUT
SITE
SIZE
SLID
SOCK
SPIN
SSTR
STRL
SUBJ
SWIN
SYSCMD -sys[0]cmd.
TABL
TABS
TaskIcoMenu @@TaskIcoMenu=.
TEAM
TEMP
TEXT
THRD CMD │'THREAD'
THREAD CMD │'THREAD'
TIME
TIPS
touch touch[:[.
TREE
UPNP
USER
WALL
WAIT
WIM [!][Wim.
WinVer =WinVer.
WndProc ENVI^ WndProc[.
WRIT
zero ^ zero=.
MESSAGE *║    │CMD │'MESSAGE MAPPING'
BLOCK *║    │CMD │'BLOCK' 
LineMergeChar *║    │CMD │'LineMergChar'
\ *║    │CMD │'LineMergChar'
KeyVal *║1.Key Value(.
PartType *║2.operand of partition type.
DiskMidea *║3.DiskMediaType:.
CommandLine *║1.the way to convert a script to a command line:.
NOTE *║2.note character:.
INIT *║3.1..
EmbedScript *║3.2..
ICON *║4..
PLUGIN *║5..
REDUCE *║ΔIf you need to contract
WELCOME Welcome to use
FEATURES *║FEAT│◙
USAGE *║USAG│Ѻ
CONTROL following controls
EmbedVar embedded with following environment variables
DRAG *║ΔThe script can be dragged.
#<HELP_DOC>#
╔═══════════════════════════════════════════════════════════════════════════════════════════════════════╗
║            Welcome to use PECMD2012 - WinPE Commander,a powerful WinPE command interpreter!           ║
╠═══════════════════════════════════════════════════════════════════════════════════════════════════════╣
║PECMD --- XCMD V2.2 Perfect Ver.More commands like CALL,HOTK and FBWF are added on the basis of        ║
║          XCMD V2.2,with many thanks to Yonsm.                                                         ║
║PECMD2012 Official website: http://bbs.wuyou.net/forum.php?mod=viewthread&tid=205402&extra=page%3D1    ║
║PECMD2012 NonCopyRight,any individual or organization(including commercial one) can use and modify it  ║
║          freely and consult the author for technology.                                                ║
║PECMD2012 Rebuilt with the code of PECMD2.4,help document sorted by 988668 @May 10,2010(append. behind)║
║PECMD2012 This document was translated into English by ddsony on April 3,2015.                         ║
╠════╤══════════════════════════════════════════════════════════════════════════════════════════════════╣
║VER │♫PECMD v2012.1.88     fix                                                                         ║
╠════╪══════════════════════════════════════════════════════════════════════════════════════════════════╣
║    │◙Short,refined and runs quickly;extremely powerful in-built with many commands,including some     ║
║    │  common extended setting commands and capable of calling external EXE and DLL functions.         ║
║FEAT│◙Command line params and config file in unified format are supported,and login can be totally     ║
║    │  controlled by using and modifying the INI file.                                                 ║
║URES│◙Modularized and structured script config file is supported,in which entire-row and end-of-row    ║
║    │  notes are permitted as well as TOL space indent.                                                ║
╠════╪══════════════════════════════════════════════════════════════════════════════════════════════════╣
║    │ѺUse command line params,eg:To set environment variable,execute"PECMD.EXE ENVI $PPPoE=OK".        ║
║    │ѺUse config file,eg:"PECMD.EXE LOAD %SystemRoot%\PECMD.INI".                                      ║
║    │ѺRunning PECMD without any param will display this help document.For more,please refer to "HELP". ║
║    │ѺCommand line params support environment variable interpretation(like"%TEMP%\X.TXT");             ║
║    │  Command line is not case sensitive;The param in "<>" is indispensible,while "[]" optional.      ║
║USAG│ѺNotes are disabled in command line mode(not executed by LOAD) while enabled in script mode by    ║
║    │  default(LOAD).It can be shifted using NOTE or COME.                                             ║
║    │ѺGenerally,you only need to list commands in PECMD.INI,put it in a certain place on the disk and  ║
║    │  execute "PECMD.EXE MAIN INI FILE NAME(containing its path,supportive of environment variables)".║
║    │ѺThe format of script file can be WCE,WCI,WCS,WCX,INI,INF,TXT,LOG and user-defined.To standardize ║
║    │  INI is applied to LOAD.INI,INF to an install file,WCE,WCI,WCS,WCX to script and WCI,WCX are used║
║    │  for personal test or adding user-defined note characters before a file name;WCZ,WCM and WZM are ║
║    │  used for compressed files,and LOG(default)for a log file.The embedded tutorial is encoded with  ║
║    │  TXT-ANSI.The user-defined format of a script should agree with the system-defined standards of  ║
║    │  script and document,or it is likely to go wrong when executed.                                  ║
║    │▲Attention:                                                                                       ║
║    │  If a real path is adopted in the command of LOAD and it contains space,""is sure not to be left ║
║    │  out,for LOAD has its params,eg:LOAD "X:\Program Files\a.ini". If the path is in the form of     ║
║    │  variable referencing and appears literally successive,""can be absent,eg:LOAD %Program%\a.ini.  ║
║    │  // "" is not used.                                      Refer to the remarks of LOAD for more.  ║
║    │▲Please test the script command in PECMDEDIT or in the command line of PECMD rather than that of  ║
║    │  CMD.                                                                                            ║
║    │▲The main command characters:A-Z,a-z,0-9,_ and Chinese characters."$#@+-|^&"are the symbols for   ║
║    │  the beginning of a suffix,so FIND-JPG and THREAD* FIND-JPG are both invalid in syntax,but a     ║
║    │  complete form like CALL FIND-JPG or THREAD* CALL FIND-JPG stands.                               ║
║    │▲EXEC*1 ... NAME=command:a command that immediately stops its execution upon receiving a line of  ║
║    │  message.                                                                                        ║
║    │▲Use PE variables more than environment variables so as to enable your functions to be used in a  ║
║    │  multi-thread environment. &CurDir ... &ERRORLEVEL user variables                                ║
║    │ΔUse internal environment variables with a couple of % like %Desktop% when PECMD commands are     ║
║    │  executed in CMD window or WinGUI applications.                                                  ║
║    │ΔUse internal environment variables with two couples of % like %%Desktop%% when PECMD commands    ║
║    │  are executed in CMD script.                                                                     ║
║    │ΔParams containing ">","|","&" or "^" should be bracketed by a pair of double quotes when they    ║
║    │  are used in command line,or attach "^" ahead of these symbols.If not,they will be regarded as   ║
║    │  redirection or pipe operation. PECMD supports interpreting params with quotation mark.          ║
║    │ѺATTENTION:Local variables of lower level can directly reference the value of those of higher     ║
║    │  level,yet it is not recommended for global ones for fear that it will bring about disorder of   ║
║    │  logical structure.                                                                              ║
║    │◊You must delete HKLM\SOFTWARE\PELOGON when build PE.                                             ║
║    │◊Use %% to indicate that it is % rather than a variable.                                          ║
║    │◊Path variable syntax:Drv:\%Path Var%\%Path Var%,The interpreter,PECMD will not add ":" or "\"    ║
║    │  automatically.Take care!                                                                        ║
║    │◊Command syntax1:ABCD [Partition],[Drv letter],[Time to wait] //Comma cannot be ignored despite   ║
║    │  of there being no params!                                                                       ║
║    │◊Command syntax2:ABCD [Partition],[Drv letter],[Time to wait] //Comma can be ignored in reverse   ║
║    │  direction when there are no params.                                                             ║
║    │◊Params in⌠⌡are sequence sensitive!                                                               ║
║    │♫Unless in special cases,try not to write a nested command sentence in a single line but in a     ║
║    │  standard way of newline to make it easy to read and understand.                                 ║
║    │▲Exit code of PECMD.exe is the last error code of a command.0 means no error.A minus (or >        ║
║    │  0x7FFFFFFF) results in 1.                                                                       ║
║    │▲Commands to sort drive letters should be placed at the very head of PECMD.INI.                   ║
║    │▲Some ^ before the command means pre-interpreting it several times.                               ║
║    │◊-[ ]LOGS debugging information  //This line is only displayed in a log file.                     ║
╚════╧══════════════════════════════════════════════════════════════════════════════════════════════════╝
╔═══════════════════════════════════════════════════════════════════════════════════════════════════════╗
║            PECMD - Command interpreter,capable of creating windows and following controls             ║
╠═══════════════════╤═══════════════════╤════════════════════╤════════════════════╤═════════════════════╣
║ComboBox           │Button             │Picture-IMAG        │CheckBox            │Edit                 ║
║HotKey             │Menu/TRAY          │Radio               │ProgressBar-PBAR    │Group      GroupPanel║
║Static-LABE        │Timer              │Tabl                │List                │MEMO         TXT Edit║
║BROW         Browse│SBAR      SCrollbar│ TREE               │                    │                     ║
╠═══════════════════╧═══════════════════╧════════════════════╧════════════════════╧═════════════════════╣
║             PECMD - Windows Commander,embedded with following (environment) variables                 ║
╠══════════════════════════════════╤══════════════════════════════════╤═════════════════════════════════╣
║CurDir  &CurDir     ConfigFile Dir│CurFile  &CurFile  ConfigFile Name│CurDrv  &CurDrv   ConfigFile  Drv║
║Favorites   Full Path of Favarites│IECache                IE Temp Dir│MyName  &MyName NameOfFileItself ║
║Personal            MyDocument Dir│Programs              Programs Dir│SendTo                Dir Send To║
║StartMenu            StartMenu Dir│Startup              StartMenu Dir│QuickLaunch                      ║
║Desktop                Desktop Dir│&&__MAIN__        1 in Main Script│&__OldDir   DirBeforeLoad_OnStart║
║&&ERROR ERROR    Command ErrorCode│&WM_PE_BASE        PE Message Base│&PE_IDBASE     PE Control ID Base║
║&PeExe  1=Norm 0=EmbScrpit -1=Init│&SYSCODEPAGE                      │&WM_TaskbarRestart  DsktpRestMess║
║&__PID &__PPID &__TID &__LastPID &__LastTID &__HINST PID ParentPID ThreadID LastCreatePID/TID ProcHandl║
║&&ERRORLEVEL EXEC ERRLVL Wait Mode│&bX64    3=PECMD64 1=WIN64 0=WIN32│&PECMDVER &PECMDBUILD     Version║
║RANDOM  RanNumVar(Non_Minus INT64)│_CD &_CD  RltmCurDir│&__WinID &__LastWinID CurWinID  LastCreateWinID║
║&__NMHDR.idFrom &__NMHDR.code     │&__NMHDR.hwndFrom WM_NOTIFY  Param│&__LOGS         Current LOGS File║
║&__wParam.wID &__wParam.wNotifyCode  WM_COMMAND  Control ID Message ID│&PE_MENU_IDBASE     Menu Base ID║
║&__THIS unique COOKIE of PE_STACK    &&__RET Contracted functions return variables %PeVar?type[@]:[~]of║
║f%  %Var:~off,len% //;:replace,   %&ptrlen%   &WM_TASKBARBUTTONCREATED: TaskBarButtonMess              ║
╚═══════════════════════════════════════════════════════════════════════════════════════════════════════╝
╔═══════════════════════════════════════════════════════════════════════════════════════════════════════╗
║                PECMD - WinPE Commander explanations,examlples and remarks on commands                 ║
╠════╤════╤═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'_END'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│_END                                                                                         ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To finish the subprocess and continue the command following CALL that calls this subprocess. ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■NO                                                                                          ║
║_END├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│_END                                                                                         ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼_SUB and _END,which define a subprocess,should be in a separate line,ie,in FIND,IFEX and    ║
║    │    │  TEAM subprocess cannot be defined.                                                         ║
║    │    │☼Commands between _Sub and _End(subprocess) can only be excuted by the corresponding         ║
║    │    │  command of CALL.The main process will skip them.                                           ║
║    │    │☼_END should always be paired with _SUB and subprocess cannot be defined in a subprocess.    ║
║    │    │☼It is recommended to place the subprocess at the beginning of the config file though it     ║
║    │    │  can be called anywhere by the command of CALL in the same config file.                     ║
║    │    │☼This command can only be used in a config file instead of a command line.                   ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'_ENDFILE'                                                                                   ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║_  F│FORM│_ENDFILE[-IMPORT]                                                                            ║
║E  I├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║N  L│FUNC│End of a script                                                                              ║
║D  E├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼Something else of code-level can be put behind it yet will not be executed.                 ║
║    │    │☼_ENDFILE-IMPORT is only effective to files IMPORTed,[FIND $1 = %&&__MAIN__%,]also has such  ║
║    │    │  function with the code behind abandoned.                                                   ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'_SUB' 'CLASS' 'WINDOW' 'FUNCTION'                                                           ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│_SUB <SubprocName> [*]  //* indicates the function is of THIS type,so is its being called.   ║
║    │    │_SUB <WinName>,<WinShape>,[WinTitle],[[=]Event],[WinIcon],[WinType],[Mask] [,-ntab -nfocus   ║
║    │    │     -top-forcenomin -disminb -maxb -discloseb -nosysmenu -nocap -[dis]altmv -size -trap     ║
║    │    │     -na -scale[f|:DPI]]                                                                     ║
║    │    │_SUB SubprocName,*,,destructing commands //a function with destructing commands(comma can be ║
║    │    │     contained)(automatically executed before return).                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To define a class,subfunction(process)or window,supporting nested definition of a subclass.  ║
║CLS ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■SubprocName:string.Being followed by ",*" indicates there being lasting stacks,and ",#"     ║
║    │    │  indicates a hidden window.                                                                 ║
║    │    │■WinName:string,should be unique,not the same as those of other controls or environment      ║
║    │    │  variables.                                                                                 ║
║WIN │    │■WinTitle:characters.                                                                        ║
║    │    │■WinShape:position and size of a window.The format is <L(Left)T(Top)W(Wide)H(High)>,L,T,W    ║
║    │    │  and H are respectively followed by corresponding numbers.Center-aligned if L and T absent. ║
║    │    │■Event:the command (by PECMD) to execute upon the closing of a window.=:not close            ║
║FUNC│    │■WinIcon:the icon for the titlebar in a window and displayed on the taskbar.The format is    ║
║    │    │  <IconFileName#ID>. SUP. <ico/bmp/img>[<color:color><size:size1><font:font1>[<size:size2><fo║
║    │    │  nt:font2><bkcolor:bkcolor>]]TXT[<text><font:font1><font:font2>TXT]                         ║
║    │    │■WinType:[-][#][[$]Num][:[TranspColor]],"-":no titlebar,"#":no frame.1-99:transparency.      ║
║    │    │  $ before Num indicates values 0-255;100(255) indicates a hidden window.TranspColor refers  ║
║    │    │  to the color to be transparent,background color by default.                                ║
║    │    │■Mask:[%FFFFFF%][*][<[W:H]>]bmpname indicates special-shaped window mask,generally black or  ║
║    │    │  white BMP(RLE compressed format permitted),GIF,JPG.[%FFFFFF%] indicates transparency,0     ║
║    │    │  (Black)by default.*[*] indicates setting as background [only]. ~:scale,#ID indicates       ║
║    │    │  internal BMP, ID refers to resource ID,like #100.When using transparent color, the font    ║
║    │    │  Quality is set to 3.                                                                       ║
║    │    │■Status:-top:top -forcenomin:not to be minimized. -disminb:to disable minimize button. -maxb:║
║    │    │  to enable maximize button. -discloseb:to disable close button; -nosysmenu:no system menu   ║
║    │    │  -nocap:no titlebar.-nfocus:no focus. -disaltmv:to disable pressing ALT to move it with     ║
║    │    │  mouse. -size:size ajustable. -trap:to close the button without exit. -ntab:no keyboard     ║
║    │    │  focus. -csize:custom size  -na:not active -scale:scale for win8  -scalef: surpport NT5     ║
║    │    │  -scale:DPI scale by user DPI  -nxp:NoXPStyle                                               ║
║_SUB├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│_SUB DoLoop or _SUB Windows1,W360H440,PECMD Function Demo,EXEC $USAGE.TXT,%IconFile%#19,20   ║
║    │    │_SUB F1,*,,IFEX #[ %&h%<>0xFFFFFFFF && %&h%>0 ],CALL $Kernel32.dll,CloseHandle,#%&h%         ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼The name of a subfunction or window cannot begin with "$",and there should be a space       ║
║    │    │  between the command keyword _SUB and the name of the subprocess or window.                 ║
║    │    │☼A name beginning with & indicates a local one.This helps to avoid conflicts in a thread,    ║
║    │    │  which can also be achieved by entering the local mode of the thread.                       ║
║    │    │☼If many _SUBs exist,names defined by them cannot be the same,approximated or set as         ║
║    │    │  environment variables.                                                                     ║
║    │    │☼This command should be paired with _END,neither of them can be used in command line.        ║
║    │    │                                                                  Refer to END,CALL for more ║
║    │    │☼To set the title of a window,use "ENVI @WinName=WinTitle".                   Refer to ENVI  ║
║    │    │☼After transparency(not 0) is set in "WinType",the control IMAG cannot display GIF.          ║
║    │    │☼The subprocess has LAMBDA itself,so it is able to access PE variables of its caller.        ║
║    │    │☼The subfunction names of different classes or subclasses can be the same.Member functions   ║
║    │    │  of a parent class are accessible to its successor.At least one space should be indented in ║
║    │    │  nested definition.                                                                         ║
║    │    │☼Connect the name of another class with the class field mark :: to access a subfunction of   ║
║    │    │  it.Beginning with :: means starting from the class of top level,multi-level is permitted.  ║
║    │    │☼With its own stacks,the command automatically destruct PE variables,lock,controls and HKEY  ║
║    │    │  when it exits.                                                                             ║
║    │    │☼" ." is appointed as the mark of data memembers of a class,like ENVI aa.bb.cc.d=1.          ║
║    │    │☼_SUB becomes a shortcut to add user-defined commands after it is extended.It can be used    ║
║    │    │  as an internal command (CALL is not needed).                                               ║
║    │    │☼A common function can also be called by the command of CALL as a window object,generating   ║
║    │    │  many objects(fibre).                                                                       ║
║    │    │☼Use "ENVI @WinName or CtrlName.Enable=[#]Value" to set its serviceability,0:disabled,       ║
║    │    │  1:enabled(not to respond).#:used in subthread.                                             ║
║    │    │☼Use "ENVI @WinName or CtrlName.Visible=[*]Value" to set its visibility,0:invisible,         ║
║    │    │  1:visible,* indicates the second plan.>=1,successively as follows:                         ║
║    │    │  SW_SHOW,SW_SHOWNORMAL,SW_MAXIMIZE,SW_MINIMIZE,SW_RESTORE,SW_SHOWDEFAULT,SW_SHOWMAXIMIZED,  ║
║    │    │  SW_SHOWMINIMIZED,SW_SHOWMINNOACTIVE,SW_SHOWNA,SW_SHOWNOACTIVATE,SW_FORCEMINIMIZE.          ║
║    │    │                                                                 (Refer to supplements.doc)  ║
║    │    │☼A window without titlebar can be dragged by press ALT and the left button of the mouse.     ║
║    │    │☼"ENVI @Win.Paint=FuncName":to set canvas callback function with params HDC Width Height.    ║
║    │    │☼"ENVI @WinOrCtrlName.InvalidateRect=<L:T:R:B>|#WID|@SubName[~ExtVal]:[EraseBkground]"refresh║
║    │    │☼"ENVI @WinOrCtrlName.Cursor=CursorID[,][DLL File]". //to set cursor in a window.If the      ║
║    │    │        comma is absent,it refers to the system cursor.                                      ║
║    │    │☼"ENVI @WinOrCtrlName.Font=[FontSize][:[FontName][FontAdorn]]". //to set font,refer to EDIT  ║
║    │    │☼"ENVI @WinOrCtrlName.bkcolor=<[BackColorVal][*]>|ColorSet". //set/clr backcolor. *:quick    ║
║    │    │☼"ENVI @WinOrCtrlName.trans=0/1[*]".      //0x1:to set the transparency mode of background,  ║
║    │    │                           0x2:totally transparent.  *:transparent color                     ║
║    │    │☼"ENVI @WinOrCtrlName.style=[@*]CancelStyle[:AddStyle]".ENVI @@style=%WID%:[@*]v1:v2         ║
║    │    │                                           //@:direct,*:extended                             ║
║    │    │☼"ENVI @Win.HitTest=Height[:Width:x:y]".  //set the sensitive range of a movable window.     ║
║    │    │        If height<=0,cancelled.                                                              ║
║    │    │☼"ENVI @WinOrCtrlName.cmd[?]=Name|CMD"  //set/query the response command dynamically.        ║
║    │    │                                                  query need  "ENVI^ QueryCmd=1"             ║
║    │    │☼"ENVI @WinOrCtrlName.nxp="  //disable XPStyle                                               ║
║    │    ├─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │◙Class and instance:One class can generate many instances simutaneously,each of which has    ║
║    │    │  its own name.In a window instance,THIS refers to the current real window instance.         ║
║    │    ├─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │☼ ENVI @@Enable=WinID:[#]Num",0:disabled(not to respond); 1:enabled. #:used in subprocess.   ║
║    │    │☼ ENVI @@Visible=WinID:[*]Num":to set its visibility,0:invisible,1:visible.*:the second      ║
║    │    │        plan,the same as above.                                                              ║
║    │    │☼ ENVI @@Enable=?WinID:VarName":to return the status of serviceability.                      ║
║    │    │☼ ENVI @@Visible=?WinID:VarName":to return the status of visibility.                         ║
║    │    │☼ ENVI @WinCtrlName.Enable=?VarName":to return the status of serviceability.                 ║
║    │    │☼ ENVI @WinCtrlName.Visible=?VarName":to return the status of visibility.                    ║
║    │    │☼ ENVI @@IsWindow=?WinID:VarName":to return whether it is WinID or not.                      ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'POS' 'POSITION' 'SIZE' 'LEVEL'                                                              ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║POS │PARA│ENVI @WinAndCtrlName.POS=L:T:[@]W:H:Level:Transp:Front:Actv:PareWinID::CustW:CustH //@RealWH ║
║SIZE│    │ENVI @WinAndCtrlName.POS=?[@]L_VarName:T_VarName:[@]W_VarName:H_VarName:X0_VarName:          ║
║    │    │     Y0_VarName:Actv_VarName:PareWinID_VarName:CustW_VarName:CustH_VarName        //to query ║
║LEVL│    │ENVI @@POS=WinID:L:T:[@]W:H:Level:[$]Transp:Front:Actv:PareWinID::CustW:CustH                ║
║    │    │ENVI @@POS=?WinID:[@]L_VarName:T_VarName:W_VarName:H_VarName:X0_VarName:Y0_VarName:          ║
║    │    │Actv_VarName:PareWinID_VarName:CustW_VarName:CustH_VarName                        //to query ║
║    │    │Format1:to set,Level1:BLevel,2:CancTLevel,3:TLevel,4:FixedOnTLevel,Null or *:unchanged,      ║
║    │    │Frnt1:at the front,Actv1:activated,$ before transparency refers to the format of 0-255,      ║
║    │    │Format2:to query,(X0,Y0):the customer base relative coordinates,null is permitted,           ║
║    │    │@L indicates returning screen absolute coordinates,@W returning the real width and height.   ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│ ENVI @WIN1.POS=%X1%:300:300:180:4  //to move,change its size and fix it on the top level.   ║
║    │    │ ENVI @B1.POS=?X2:Y2:W2:H2          //to query its size.                                     ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'MESSAGE MAPPING'                                                                            ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■ENVI @WinAndCtrlName.MSG=[_$*+]MsgID:[:[wPrm ParamName],[lPrm ParamName],] command to       ║
║    │    │  execute  //to define the capture of message mapping.                                       ║
║    │    │  front command by default; _ refers to rear command; $ alternative command,ignoring system  ║
║    │    │  response and meanwhile return outcome code; * used in the command of TRAP B. +:super mode  ║
║    │    │  "Command to execute" beginning with - indicates executing from the window where it lies    ║
║    │    │  (execution stacks). <:DisLogsCmd                                                           ║
║    │    │■ENVI @WinAndCtrlName.POSTMSG=[:VarName;]MsgID[;Param wPrm[;Param lPrm]] //Send msg asynch   ║
║    │    │■ENVI @WinAndCtrlName.SENDMSG=[:VarName;]MsgID[;Param wPrm[;Param lPrm]] //Send msg synch    ║
║    │    │■ENVI @@POSTMSG=[:VarName;]WinID;MsgID[;Param wPrm[;Param lPrm]]         //Send msg asynch   ║
║    │    │■ENVI @@SENDMSG=[:VarName;]WinID;MsgID[;Param wPrm[;Param lPrm]]         //Send msg synch    ║
║    │    │  The two WinIDs above can be *[?Timeout[?Interval]][*WinClassName*][Title]                  ║
║    │    │■Applicable to _SUB window and control.For MsgID,see:WM_MSG.WCS,IMPORT is applicable.        ║
║    │    │  The VarName returns the outcome(Its meaning depends on the message).                       ║
║    │    │■MsgID beginning with # indicates PECMD will apply user-defined message 1-N. wPrm,lPrm are   ║
║    │    │  param names,which can be referenced._ after = indicates entering next-half-response mode,  ║
║    │    │  ie,to respond after the system response(to respond to derived messages in reverse order).  ║
║    │    │  ";" above can be replaced with ",".Params for message can be numbers,@PEVarName(ENVI$# to  ║
║    │    │  fill non-string objects),$String(only applicable to SENDMSG).                              ║
║    │    │  .MSG=MsgID can be:<COMMAND|NOTIFY>[=MsgID]#[CtrlID][# minor MsgID]                         ║
║MSG ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║MAP │EXMP│ ENVI @Win1.MSG=#1::wp,lp,MESS- HELLO wp=[%wp%],lp=[%lp%]@#OK                                ║
║    │    │ ENVI @Win1.POSTMSG=#1,1,2             //to trigger message #1.                              ║
║    │    │ ENVI @Win1.MSG=%&WM_LBUTTONUP%:MESS You have clicked.                                       ║
║    │    │ ENVI @Edit1.MSG=%&WM_MOUSEENTER%:ENVI @Edit1=The mouse has entered.                         ║
║    │    │ ENVI @@SENDMSG=%__WinID%:#2;@str1;@str2 or ENVI @@SENDMSG=%__WinID%:#2;$Line11;$abc11       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │MODL│How PECMD captures the echo of CMD command line(not via temporary file)? Eg:how to capture   ║
║    │    │the echo of CMD command "dir d: /d"?                                                         ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │ EXEC*  &V=!cmd.exe /c dir d: /d                                                             ║
║    │    │ MESS. [%&V%]@DEBUG#OK                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │ ☼EXEC* @CtrlName=CMD:The outcome of the "CMD" can be displayed synchronously on  controls   ║
║    │    │   like EDIT/MEMO/LABE.                                                       Refer to EXEC. ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'BLOCK'                                                                                      ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│ A segment of code surrounded by{}                                                           ║
║    │    │ TEAM SET &cmd={CMD1 %NL% CMD2 %NL%...}|%&cmd% //Multiline with variable embedded,separated  ║
║    │    │ by line breaks.                                                                             ║
║    │    │ (CMD1 %NL% CMD2 %NL%...)  //Multiline with plain codes embedded,separated by line breaks.   ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To define a segment of code.With its own stacks,it automatically destructs PE variables,     ║
║    │    │locks,controls and HKEY when it exits.It can be used as an internal function.                ║
║    │    │{ being followed by * indicates a code segment of THIS type without stacks of its own or the ║
║ B  │    │ability of self-dustruction,merely indicative of range.                                      ║
║ L  ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║ O  │EXMP│TEAM { wait 10 | LOCK train tickets | handle train tickets  123 | handle train tickets 2 }   ║
║ C  ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║ K  │REM │☼It can be used at file level or in a function and a command group.Nesting is permitted.     ║
║    │    │☼At file level or function level,{} should be the first non null character in the first      ║
║    │    │  line.At command group level,unrestricted,yet{} should be at the head of the command group. ║
║    │    │☼Condition Block                                                                             ║
║    │    │   IFEX/FIND  COND,[!]       //With ! refers to ELSE part,without ! or !! refers to IF part, ║
║    │    │                               only one of them is adopted.                                  ║
║    │    │   { ....code lines                                                                          ║
║    │    │   }                                                                                         ║
║    │    │   IFEX/FIND  COND,[!] { CMD1   // "{" is not at TOL.Be cautious to use.It cannot be nested. ║
║    │    │      ....CMD2... code lines    //True[False]Condition                                       ║
║    │    │   }                                                                                         ║
║    │    │   IFEX/FIND  COND,    //without !                                                           ║
║    │    │   { ....code lines    //True condition                                                      ║
║    │    │   }!                                                                                        ║
║    │    │   { ....code lines    //False condition,"}" is closely followed by !,! can be followed by   ║
║    │    │                         several null characters,and then by "{".                            ║
║    │    │   }                                                                                         ║
║    │    │   IFEX/FIND  COND,  { CMD1   //without !,"{" is not at TOL.Be cautious.It cannot be nested. ║
║    │    │      ....CMD2... code lines  //True condition                                               ║
║    │    │   }!                                                                                        ║
║    │    │   { ....code lines    //False condition,"}" is closely followed by !,! can be followed by   ║
║    │    │                         several null characters,and then by "{".                            ║
║    │    │   }                                                                                         ║
║    │    │   IFEX/FIND  COND, CMD!  //True condition,! is followed by blank.                           ║
║    │    │   { ....code lines       //False condition.                                                 ║
║    │    │   }                                                                                         ║
║    │    │   LOOP/FORX  COND,[!] [FORX Var,]                                                           ║
║    │    │   { ....code lines                                                                          ║
║    │    │   }                                                                                         ║
║    │    │Notice:Nesting is permitted within a block.{}should be at TOL,where multiple {} can be mixed ║
║    │    │   {...} can be embedded into a line as a whole.IFEX/FIND/LOOP/FORX  COND,[!!]  ...{...}...  ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'LAMBDA'                                                                                     ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│[]param list separated by space{LAMBDA function body}                                        ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║ L  │FUNC│To define a segment of code with stacks and param list of its own.It can be used as an       ║
║ A  │    │internal function.It automatically destructs PE variables and locks when exits.              ║
║ M  ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║ B  │EXMP│[]P1  P2  P3  "345        667"{ MESS [LAMBDADEMO] %* @DEBUG #OK }                            ║
║ D  ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║ A  │REM │☼It can be used at file level,in a function or a command group.Nesting is permitted.         ║
║    │    │☼At file level or function level,{} should be the first non null character in the first      ║
║    │    │  line.At command group level,before | or at EOL,yet{} should be at the head of the command  ║
║    │    │  group.                                                                                     ║
║    │    │☼LAMBDA function body of command group level will be interpreted as a variable string,so it  ║
║    │    │  is dynamic,and meanwhile "%" should be replaced with "%%".                                 ║
║    │    │☼With stacks of its own,it automatically destruct PE variables,locks,ctrls and HKEY on exit  ║
║    │    │☼_SUB is actually LAMBDA and LAMBDA is featured to be able to use the stacks of its caller.  ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'ADSL'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│ADSL[] [AccountSSID],[Password],[RetryTimes|stop|start[+]|list[on]],[ConnName|*|RetName]     ║
║    │    │ADSL-wlan [-start] SSID|&ProfileVar,PassWD,authent[,Idx] //default auth:WPA2PSK AES (1 space)║
║    │    │ADSL-wlan Index,,[?][^|*|-]list|query[all]|scan,RetName  //query:Index guiid State Desc      ║
║    │    │    list:SSID SignalQuality Flags BssType NumBssid bConnectabl NotConnecReason bSecurityEned ║
║    │    │    DefaultAuthAlgorithm DefaultCipherAlgorithm  bMorePhyType NumberOfPhyType PhyTypes[]     ║
║    │    │    WebQuery:WLAN_AVAILABLE_NETWORK      Flags&1:Connected                                   ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To establish an ADSL connection according to the specified account and password.             ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■ADSLAccount:string,BASE64 variation code calculated by BASE from "ADSLAccount".             ║
║    │    │■ADSLPassword:string,BASE64 variation code calculated by BASE from "ADSLPassword".           ║
║    │    │■DialRetryTimes:number,supportive of values of Hex,1 by default if absent.                   ║
║    │    │■ADSLConnectionName:string,in"Network Neighbourhood" ==> "Property" ADSLConnectionName       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║ADSL│EXMP│ADSL MhFTxYzM4AUbtR2cuM2btB==,XlmbUV2c0B==,,ADSL Connection or ADSL ,,,My Connection         ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼"ADSLAccount" and "ADSLPassword" should be generated by BASE to ensure the safety of        ║
║    │    │  user's ADSL information.                                                                   ║
║    │    │☼"DialRetryTimes" indicates the times of retrying when dialing fails.0 or smaller than 0     ║
║    │    │  indicates dialing up repeatedly until it succeeds.                                         ║
║    │    │☼"ADSLConnectionName" can be absent.The command of ADSL will dial up the connection in the   ║
║    │    │  system if it exists; If a valid connection does not exist,ADSL will establish an specified ║
║    │    │  one and dial it up according to its params; If a valid connection does not exist and ADSL  ║
║    │    │  does not specify a connection name,PECMD will establish a default one and dial it up       ║
║    │    │  according to its params; If ADSLAccount or ADSLPassword is absent,ADSL will only establish ║
║    │    │  a connection but not dial it up.                                                           ║
║    │    │☼This command demands PPPOE components in the system and is applicalbe to both a config      ║
║    │    │  file and command line.                                                                     ║
║    │    │☼Example 1 will dial up once according to the specified params using "ADSLConnection";       ║
║    │    │  Example 2 will only establish a PPPOE dial-up connection named "My Connection".            ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'BASE'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│BASE       <Str>[,VarName]                                                                   ║
║    │    │BASE* [-u] <Str>[,VarName]                                                                   ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│Auxiliary command of ADSL to calculate the BASE64 variation code of a string,which is used   ║
║    │    │for such data as the encrypted user's password of ADSL.                                      ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■Str:The string used for calculating the BASE64 variation code,supportive of a mixed string  ║
║    │    │  of Chinese and English,case sensitive.                                                     ║
║    │    │■VarName:to store the outcome of calculation.                                                ║
║BASE├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│BASE mdyblog@163.com,AdslUserName or BASE PassWord,AdslPassWord                              ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼When the BASE64 variation code is calculated by BASE,the number of the characters in the    ║
║    │    │  string should be limited within 256(containing no ",").                                    ║
║    │    │☼VarName given,BASE will store the outcome of calculation in the specified variable.         ║
║    │    │  Example 2 can be referenced via the environment variable %AdslPassWord%.                   ║
║    │    │☼If VarName is absent,BASE will display the outcome of calculation in the form of a message  ║
║    │    │  window and meanwhile store them in the clipboard.                                          ║
║    │    │☼BASE adopts BASE64 variation algorithm,the outcome of which differs from that of a common   ║
║    │    │  algorithm to ensure the safety of user's data,thus it offers no decoding command as well.  ║
║    │    │☼BASE* refers to a common algorithm,offering decoding command.                               ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'BROW'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│BROW [-fix] <VarName[;flgnm]>,[[*|&]InitPath],[Tips],[ExtName],[Flags][,hookfun[,param]]     ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To browse file or directory on the disk.-fix:to crack down the shield of system directory    ║
║    │    │(not sure to succeed).                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■VarName:to store the result of browsing.                                                    ║
║    │    │■InitPath:the file or directory selected by default in the browsing window.If absent,the     ║
║    │    │  system default path will be positioned; "*" indicates a dialogbox for directory browsing.  ║
║    │    │  "&" a dialogbox for file saving; If the leading character is absent,the default is a       ║
║    │    │  dialogbox for file opening.                                                                ║
║    │    │■Tips:can be absent.If so,tips will be the system default ones.                              ║
║    │    │■ExtName:to browse the file with the specified extended name.Being absent indicates all.     ║
║    │    │  It can also be a string of many options:[TIPS1|*.EXT1|TIPS2|*.EXT2|],like:                 ║
║    │    │  INI FILE|*.INI|All|*.*|                                                                    ║
║BROW│    │■AddMark:style of the dilogbox for directory browsing:"no [Editbox],with [NewDir]button,     ║
║    │    │  no FileDisplay" by default.                                                                ║
║    │    │  0x10:with Editbox; 0x200:no NewDir Button; 0x4000:FileDirCompoundSelect                    ║
║    │    │■SelFile:                                                                                    ║
║    │    │  0x200:multiselect; 0x80000:browser style; 0x2000:warning of NEW; 0x02000000:               ║
║    │    │  to exclude shortcuts of recent visit; 0x800000:size changeable; 0x1000:file must be in     ║
║    │    │  existence; 0x40000:short file name; 0x2:warning of overwriting; 0x1:read-only if checked;  ║
║    │    │  0x800: warning of invalid path; 0x8000:to exlude read-only files; 0x4:to remove checkbox   ║
║    │    │  for read-only; 0x10000000:to select read-only or hidden files                              ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│BROW Boot_Ini,C:\BOOT.INI,Please select a file,INI or BROW Tag,*C:\Windows,Please select a   ║
║    │    │directory                                                                                    ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼The hex sum of the three marks "with Editbox,no NewDir Button,FileDisplay" in the           ║
║    │    │  dialogbox for directory browsing is 0x4210.                                                ║
║    │    │☼This command will open a dialogbox for users to browse files or directories and select one  ║
║    │    │  in it.                                                                                     ║
║    │    │☼The selection can be stored in an environment variable of a process.Example 2 can be        ║
║    │    │  referenced via the environment variable %Tag%.                                             ║
║    │    │☼BROW is often executed after the command of INIT or on the desktop.                         ║
║    │    │☼This version of PECMD differs from those of old version,BROW no longer affects current      ║
║    │    │  working directory and thus it will not hang on in the target directory any more.           ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'CALC'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│CALC[-u-txt-cb-[Lfr:Lto[:Rfr:step]]] [-gui -base=[u]2|8|10|16|N] [-err=ErrVal]               ║
║    │    │                                                  [[[#]Var]=]Expr1[#[#][DeciDigits][E|F|G]]  ║
║    │    │CALC Format[[[#]Var]=][[#|$]SubVarName1=]Expr1 and suffix;or newline[[#|$]SubVarName2=]Expr2 ║
║    │    │     and suffix; ...                                                                         ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To store the outcome of the expression calculation in a "Var".E:scientific notation;         ║
║    │    │F:decimal; G:to adopt a brief way automatically.                                             ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■-base= indicates the base of the output.Outcome:binary is indicated as 0bNNNN; octonary as  ║
║    │    │  0oNNNN; hex as 0xNNNN; These datas can be directly operated by CALC.N,as other nonstandard ║
║    │    │  number system,carries no prefix and cannot be operated.The number system is also           ║
║    │    │  applicable to floating number(rounding). -gui:graphic users interface  u:unsigned_out      ║
║    │    │■The leading charater "#" indicates all variables will be treated as the type of int64; If   ║
║    │    │  the leading character is absent or $ is present,all variables will be treated as type of   ║
║    │    │  double.                                                                                    ║
║    │    │■Specific numbers or existing variables can be in the expression,supportive of the input in  ║
║    │    │  scientific notation.                                                                       ║
║CALC│    │■Operator supported: or"||"; and"&&"; xor"@@"; bit or"|"; bit and"&"; bit xor"@"; =,<>; >,   ║
║    │    │  >=,<,<=; "+","-"; mul"*",div"/",com"%"; pow"^" and ()[]{},arranged in successive priority. ║
║    │    │  The number of items is unlimited and the data includes floating number;                    ║
║    │    │  The suffix TGMKS is supported(K=1024 S=512),so is the mathematical constant:               ║
║    │    │  e(natural constant),pi(circum ratioπ),2 constants in all. A space follows opertor -.       ║
║    │    │■Suffix "#":When the outcome of calculation is treated as type of double,as many decimal     ║
║    │    │  digits as possible are kept by default,16 digits at most;(round up or down)                ║
║    │    │  The meaningless 0 behind will be all eliminated by default; ## indicates retaining them.   ║
║    │    │  Mathematical functions supported:  g is default format.                                    ║
║    │    │   abs(a)   absolute arccos(a)          arcctg(a)            arcsin(a)    arctan(a)          ║
║    │    │   ceil(a)  ceiling  cos(a)             ctg(a)               deg(a)       div(a,b) division  ║
║    │    │   exp(a)            frac(a)  fraction  floor(a)             hypot(a,b)   int(a)   integer   ║
║    │    │   lg(a)             ln(a)              log(a,b)             max(a,b)     min(a,b)           ║
║    │    │   mod(a,b) modulo   pow(a,b) power     pow10(a) 10 power    rad(a)       rand(a)  random    ║
║    │    │   round(a)          shl(a,b) shiftleft shr(a,b) shiftright  sin(a)       sqrt(a) square root║
║    │    │   tan(a)            or(a,b)            not(a)[or ~a]        lnot(a) [or !a] logical not     ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│♦ CALC #Sum = 128 + 32*22 or CALC Sum = %Datum1% + %Datum2% * 32                             ║
║    │    │♦ CALC #Result = 128 * ( 64 +66 ) or CALC Result = %Datum1% * ( %Datum2% + 12 )              ║
║    │    │♦ CALC 1+3 or CALC V=  &v1=1+3;%&v1%*100 or CALC =  &v1=1+3;%&v1%*100                        ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼"Var"can be directly set by ENVI(assigned)or the assigned outcome of CALC calculation.      ║
║    │    │☼IFEX can also be employed to judge and compare numerical values.                            ║
║    │    │☼No difference in handling float and integer numbers below 16-digit decimal.                 ║
║    │    │  ±9007199254740991                                                                          ║
║    │    │☼To use % conveniently,%n%* are forbidden.If they are needed,convert them into variable      ║
║    │    │  referencing with ENVI, or add ^before cmd.If CALC | is used in TEAM,More "|" should be     ║
║    │    │  added to according to the number of nesting for "|".                                       ║
║    │    │☼To obtain a random number:directly reference %RANDOM%,the outcome of which is 63-digit      ║
║    │    │  positive integer different each time.RAND VarName or ROUND() is also practicable.          ║
║    │    │  0----9:CALC #R0_9=%RANDOM% % 10 or RSTR R0_9=1,%RANDOM% or ROUND(10)                       ║
║    │    │☼If VarName is absent,the outcome will be displayed.Expressions are separated by ";" or      ║
║    │    │  line breaks.                                                                               ║
║    │    │☼The limit of integer in CALC and PECMD ranges from -0x8000000000000000~0x7FFFFFFFFFFFFFFF   ║
║    │    │  No such limit for a float.                                                                 ║
║    │    │☼-[f1:t1[:f2]] operation for vector. %%d is cursor.The parameters are left start_end and     ║
║    │    │  right start                                                                                ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'CALL'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│CALL $[? ][--cd ][--nrcd ][--c ][--[[i]v]ret:[~@]RetVarName ]DLLPath|*DllHandle[,FuncName][, ║
║    │    │      [#]Param1][,...[,[#]Param20                                                            ║
║    │    │CALL $[? ][--cd ][--nrcd ][--c ]--ret:* DLLPath,[*]FuncName[.vFun],[RetVarName][,[#]Param1]  ║
║    │    │      [,...[,[#]Param20                                                                      ║
║    │    │CALL $--ret:RetName [--cd --nrcd ] ,-LoadLibrary,[^<]DLL[,Pm1,Pm2]  //Load ^:AutoFree <:COM  ║
║    │    │CALL $--ret:RetName [&DllMemVar],-LoadLibrary,*[FileName]#SrcID[|Cat]//Load MEM Dll AutoFree ║
║    │    │CALL $--ret:RetName ,-GetProcAddress,*DllHandle,FuncName                //Get Address of fun ║
║    │    │CALL $[--ret:RetName] ,-FreeLibrary,*DllHandle                           //Release DllHandle ║
║    │    │CALL $--win [--qd@] [--cd ][--nrcd ] [--ret:RetVarName ]DLLPath,FuncName,CMDLineParam        ║
║    │    │                                                                      //to run dll32.        ║
║    │    │CALL $--cpl CPLPath,                                                  //control panel file   ║
║    │    │CALL [LeadChar]<SubprocName/WinName> [CMDLineParam]                                          ║
║    │    │CALL * <SubprocName>  [CMDLineParam]                   //call of THIS type                   ║
║    │    │CALL <LeadChar><WinClsName:WinRealName> [CMDLineParam] //to generate an instance of a class. ║
║    │    │CALL @-sub[:@-#LxTyWwHh]] [LeadChar]<WinName> [CMDLineParam]          //external subwindow   ║
║    │    │     @:to keep the relationship of parent and child; -#:frame with title                     ║
║    │    │CALL @--popmenu[:x.y[:align]]] <WinName> [ParamList]    //popup menu                         ║
║    │    │CALL --mem VarName [*] [CMDLineParam]          //to run the dynamic memory function code.    ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To call DLL function or subprocess.                                                          ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│☼The leading Character "$" indicates calling DLL function,--c:C call regulations.If the      ║
║    │    │  function name is *,the call is only DLL preloading(Later calls will be faster),and it is   ║
║    │    │  safe to call many times.DLLPath,FuncName and params can be specified.If FuncName is absent ║
║    │    │  ,it will call "DllRegisterServer".Params are UNICODE string by default."@" refers to       ║
║    │    │  narrow string and "#" refers to integer; 20 function params(100 for C call)at most.        ║
║    │    │  --cd:to shift to the target directory before execution; --nrcd/--rcd:(not)to restore       ║
║    │    │  directory after execution.Unkown DLL is executed in another PECMD thread.                  ║
║    │    │  --qd:all led by leading characters,#integer,<INT64,*PE_VarName,$string,=primitive string,>V║
║    │    │  ARIANT.--qd#/--qd*/--qd$/--qd@/--qd=/--qd~ :All params are integer/PE_VarNm/str/NarrowStr/U║
║    │    │  TF8Str primitive string; --qd:LeadTable --arg:~.Table(~Remove"") --m:to run DLL(CMPS permit║
║    │    │  ted)in the memory. DLLPath can be *[FileName]#SrcID(CMPS permitted;handle as *num          ║
║CALL│    │  --co/--nco:to initialize DLL(default) when it is registered/or not.                        ║
║    │    │  --1:the whole part behind as one param.  --16:return Hex.                                  ║
║    │    │  --bool: API return BOOL on succ. --sret return signed int. WINAPI/[__]stdcall not use --c  ║
║    │    │To call the address:If DLLPath is the character #,FuncName is directly the function address. ║
║    │    │To query the address:? indicates querying the address,the outcome stored in RetVarName.      ║
║    │    │  *before FuncName：fetch addr; times. &leading:Addr of PeVar. .vFun:virtual_Fun_Index or    ║
║    │    │  [?]IDispatch_fun_Name([propget]remove prefix  get/set/put_), with this.                    ║
║    │    │  --vret: return VARIANT. Can place :VT_TYPE: just before data. --get/put: Get/set propget   ║
║    │    │■"@"  indicates calling a window defined by _SUB.In a window defined by _SUB,execute CALL @  ║
║    │    │       to call another.                                                                      ║
║    │    │■"@*" indicates calling a window defined by _SUB concurrently,enabling it to be              ║
║    │    │       simutaneously operated together with its parent window.The next command cannot be     ║
║    │    │       executed before it is closed.                                                         ║
║    │    │■"@-" indicates calling a window defined by _SUB in the background and continue with the     ║
║    │    │       next command,but some time-consuming operations will still be blocked.                ║
║    │    │■"@~" indicates calling a window defined by _SUB backstage and some time-consuming           ║
║    │    │       operations will not be blocked.                                                       ║
║    │    │■"@+" indicates calling a window defined by _SUB backstage and some time-consuming           ║
║    │    │       operations will not be blocked.The window becomes abandoned.The program does not wait ║
║    │    │       for its being closed to exit.                                                         ║
║    │    │■"@^" resembles @*,yet the parent window will not shield the child,applicable to a purely    ║
║    │    │       event-driven parent window.                                                           ║
║    │    │☼"$"  Being absent indicates calling subprocess,whose name is the param.                     ║
║    │    │■The format of the function params:In a subprocess and window,%0,%1,%2,...%n respectively    ║
║    │    │  refers to SubProcName/WinName,and the param No.1,No.2,...No.n.                             ║
║    │    │  %# indicates the number of params.%* indicates all params starting from %1.                ║
║    │    │  %~0,%~1,%~2,...%~n indicates elimenating the outermost double quotes.                      ║
║    │    │  %@ indicates all params starting from %0.                                                  ║
║    │    │☼CALL can absent,together with @,eg:CALL @WIN1 a b c  or  WIN1 a b c                         ║
║    │    │☼Popup menu:x.y are the menu coordinate.If absent,they are the position of current mouse.    ║
║    │    │  WM_MENUSELECT is hovering message for menu,with index：(%wParam%&0xFFFF)-%PE_MENU_IDBASE%  ║
║    │    │  Select:%&__MenuId% %&__MenuInx%                                                            ║
║    │    │☼"CALL @--":to unload the windows environment."CALL @":to initialize the windows             ║
║    │    │  environment so that soem related windows commands can be executed in any place.            ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│☼To call DLL function: CALL $SHELL32.DLL,DllInstall,#1,U                                     ║
║    │    │☼To call subprocess: FIND MEM>127,CALL EXPLORER_SHELL!CALL CMD_SHELL                         ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼DLLPath: maybe *DllHandle  or  **MemDllHandle                                               ║
║    │    │☼To call DLL function:Functions in DLL are in accordance with PASCAL call regulations,       ║
║    │    │  unless with --c(just ignore it if you do not understand).                                  ║
║    │    │   -DllRegisterServer: RegisterDLL  -DllUnregisterServer: UnregisterDLL                      ║
║    │    │☼To call subprocess:The command of CALL can only call the subprocess in the same config      ║
║    │    │  file,and this function is not applicable to the command line.      Refer to _SUB and _END. ║
║    │    │☼Common functions can also be called as window objects by CALL @,generating many objects     ║
║    │    │  (fiber).Use "KILL \",or "ENVI  @FuncName=Name1"(CALL command line by default) to destruct  ║
║    │    │  objects internally and use "KILL \Name1" to do so externally.                              ║
║    │    │☼In format4,THIS refers to the real window.                                                  ║
║    │    │☼In format2/4,if a param contains a null character,it should be bracketed by double quotes,  ║
║    │    │  or the param will be separated.                                                            ║
║    │    │☼%&&__LastWinID% is the unique ID of the last-created window and %&__WinID% is the ID of     ║
║    │    │  the current window.                                                                        ║
║    │    ├─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │☼Call of THIS:The function runs in the stack of its caller,mainly to transform the &&        ║
║    │    │  initializing codes into a function.                                                        ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'CHEK'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│CHEK [-right -center -scale[:[SizeH][[<sW:sH>]:PIC]]] [*] Name,Shape,[Title,Evet,State]      ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│Create a checkbox in the window.                                                             ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│  * indicates being automatically recycled before quitting the block or function.            ║
║    │    │■ChkName:string,shoul be unique,not the same as those of other controls or environment       ║
║    │    │  variables.                                                                                 ║
║    │    │■ChkSize:position and size of the checkbox.The format is <L(left)T(top)W(wide)H(high)>,      ║
║    │    │  L,T,W and H are respectively followed by corresponding numbers.                            ║
║    │    │■ChkTitle:characters on the checkbox,describing its function or instructions.                ║
║CHEK│    │■ChkEvent:the command to execute when it is clicked.The command should be supported by PECMD ║
║    │    │■ChkStatus:number,1 or -1 indicates being checked,0,2 or -2 unchecked,smaller than 0 means   ║
║    │    │  disabled,±16 invisible.                                                                    ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│CHEK Check1,L180T336W100H20,MountR.W.,,1                                                     ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼This cammand is generally located between _SUB and _END.           Refer to _SUB and CALL.  ║
║    │    │☼Environment variable:%ChkName% is the title of the checkbox.To set the title,use "ENVI @    ║
║    │    │  ChkName=ChkTitle"                                                                          ║
║    │    │☼Use "ENVI @ChkName.Check=Val" to set the status of checkbox,0:unchecked,1:checked,2:toggle  ║
║    │    │☼Use "ENVI @ChkName.Enable=[#]Val" to set its serviceability,0:disabled,1:enabled(not to     ║
║    │    │      respond).#:used in a subthread.                                                        ║
║    │    │☼Use "ENVI @ChkName.Visible=Val" to set its visibility; 0:invisible,not 0:visible.           ║
║    │    │☼Use "ENVI @CtrlName.*del=" to delete. -scale:Internal scaling.                              ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'CODE'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│CODE [*nobom] [*transonly] [*[*]]-srcFmt,srcfile,[*[*]]-dstFmt,dstFile                       ║
║    │    │CODE *jm   PeVar,+|-|^|#|>|.,Num_or_SrcOff,UniB,Off,Bytes[,StepS,Loops[,StepD]] //^Xor#Swap  ║
║    │    │ >RLopMov.Set&And|Or?RetNm[±Of]:BitQuery ΣRetNm:SUM ΠRetNm:product ΩRNm:QCount UnitB:1/2/4/8 ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║CODE│FUNC│To transform code.                                                                           ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■*nobom:not to import BOM; *transonly:to transform between -GBK and -BIG5.Not transform but  ║
║    │    │  only translate;                                                                            ║
║    │    │■srcFmt:source format; -dstFmt:destination format,including -UNICODE -UNI -UNICODEB -UNIB    ║
║    │    │  -ANSI -UTF8 -UTF7 -GBK -BIG5 -number-.- is a format of natural display and the number is a ║
║    │    │  standard code ID. */*** before -srcFmt indicates srcfile is an hex string/PEVar to transf- ║
║    │    │  orm; *- indicates the spaces at the front and back of the srcfile will be transformed;     ║
║    │    │  * before -dstFmt indicates transforming into an hex string and storing the outcome in a    ║
║    │    │  variable; dstFile is compatible with PUTF/GETF. No * indicates a file name; Some special   ║
║    │    │  characters will be transfered to a variable first before being referenced later,and its    ║
║    │    │  input can be of decimal;                                                                   ║
║    │    │  With *,- can be absent; For source format,select -BOM,it will be automatically judged      ║
║    │    │  according to BOM;                                                                          ║
║    │    │  ** before -srcFmt and -dstFmt indicates the content behind is a name of PE variable.       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│CODE  -ANSI,src.txt,-UNICODE,dst.txt        CODE **-GBK,&V1,**-UNI,&DST                      ║
║    │    │CODE  *,NiHao,*UNICODE,UNI_HEX_NIHAO        CODE *,NiHaoMa,**-GBK,&DST                       ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'COME' 'NOTE'                                                                                ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│COME/NOTE  <0|1|ON|OFF>                                                                      ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║COME│FUNC│To enable/disable notes.                                                                     ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║NOTE│PARA│■1:to enable(default); 0:to disable                                                          ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│COME 0                                                                                       ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'CMPS'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│CMPS [-f] [-m] [-bin|-src[:Flag]] [-utf8] [-o] [-u] SrcFile [,]  CmpsFile                    ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║CMPS│FUNC│To compress a file.                                                                          ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■-f:to keep the format mark of the source file,optional.-m:unencrypted,-u:to extract,-o:     ║
║    │    │  old encryption. -bin:encrypt for binary                                                    ║
║    │    │■Flag: 1:del comment line 2:translate \r\n 4:merge blank line 8:del CommentInLine(danger)    ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│CMPS A.wcs  A.wcz   or   CMPS -m B.wcs  B.wcz or CMPS -u B.wcz  B2.wcs                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │A compressed file can be directly loaded for execution,or treated as an embedded script,its  ║
║    │    │icon,bitmap and size unrestricted.Encrypted files can be executed but not extracted.         ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'DATE'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│DATE⌠-h⌡⌠-r⌡[-space[0]] [-bsys] [-utc:UTC time] [-gmt:GMT time] [-local:LOCAL time]          ║
║    │    │     [-us] [-sys:international time]                       [VarName]  [SubItem]              ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To returen current system date and time                                                      ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │  -h:high-accuracy,-r:synchronous high-accuracy timer,at the very head of the param list.    ║
║    │    │  -space indicates outputing space,with 0 indicates completing with 0; -bsys:to output       ║
║    │    │  international time; Other params indicate not obtaining current time but converting the    ║
║    │    │  time.-local -sys followed by 0 indicates the input in the format of -space0.               ║
║    │    │  -us indicates millisecond with 4 decimal places.                                           ║
║    │PARA│■VarName:to store current system date and time.CurDate by default.                           ║
║    │    │■SubItem: y Mon d w h min s ms ws[1] ds Freq Counter respectively indicates year month day   ║
║    │    │  week hour minute second millisecond NumberOfWeeks xxth_day_of_year frequency counter.      ║
║    │    │  Also directly adopt the subitem of Chinese version yy MM DD ww hh MM SS MS W[1]day.        ║
║    │    │  All subitems will be returned if unspecified.The subitem gmt indicates the number of       ║
║    │    │  seconds GMT(timing from 1970.1.1),uptime refers to the number of milliseconds of the PC    ║
║    │    │  running time,utc refers to UTC time with the unit of 100 nanoseconds,timing from 1601.1.1. ║
║    │    │  uptimens refers to the number of nanoseconds of the PC running time. Counter refers to     ║
║    │    │  high resolution timer Counter. Multiple subitems are ermitted.                             ║
║DATE├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│DATE -us SysDate                                                                             ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼The returned outcome will be stored in a specified variable in the form of "Y-M-D|W|H:M:S"  ║
║    │    │  ,the date and time of which are ready to be cut out with MSTR for separate use.            ║
║    │    │☼If VarName is absent,the outcome will be stored in the environment variable %CurDate%,the   ║
║    │    │  possible outcome of the example is "2008-8-8|5|20:8:8".                                    ║
║    │    │☼International time and LOCAL time can be bracketed with a pair of quotes/double quotes,and  ║
║    │    │  each item is separated by any nonnumeric character.                                        ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'DEVI'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│DEVI [*rescan] [*norescan] [*devclass:DevClass] [$]<CABPath>[,MatchLevel[,ExtractDir]]       ║
║    │    │DEVI [*rescan] [*norescan] [*nocheck]   <INFPath>[,DevClass]                                 ║
║    │    │DEVI [*rescan] [*norescan] <DirWithSubdirOfINF>[,DevClass]                                   ║
║    │    │DEVI [*rescan] [*norescan] <*sub|*self> <DirWithINFFile>[,DevClass[|OptClass]]               ║
║    │    │DEVI $[$]<INFPath>,[InstSection],[ActionCode]        <===StandardInstall,DefaultInstall,132  ║
║    │    │DEVI [*rescan] [*norescan] *extract <CABPath>,[MatchLevel],ExtractDir   <===pure extraction  ║
║    │    │DEVI [*rescan] [*norescan] *nocheck <CABPath>,[MatchLevel],ExtractDir,INF relative path      ║
║    │    │                                                <===according to INF in the cabinet directly ║
║    │    │DEVI *rescan[:Fun]                              <===to rescan hardware changes               ║
║    │    │DEVI listdev:VarName [*devclass:DevClass] [*ALL] [*listdev=i|c|+] [*devid:[h|c|+|@:]ID]      ║
║    │    │            [*comp[+]] [*hwid] [*inst] [*many] [*rescan]  //to list can be'preID1''preID2'   ║
║    │    │DEVI *[*]disverify                           <===to disable driver verifying,** as by force  ║
║    │    │DEVI <*enable|*disable|*remove|*restart>:[h|c|+:]DevInstance/(hc)ID <===to enable/dis... dev ║
║    │    │DEVI <*update|*install>:HWID:INF <===update/Install dev.Can be 'HWID1:INF1''HWID2:INF2'...   ║
║    │    │DEVI *status:RetNm:[h|c|+:]DevInstance/(hc)ID  [*nl]  <===query   can be'ID1''ID2'...        ║
║    │    │ status:0x400=Problem 0x8000=PRIVATE 0x8=STARTED        PROBLEM:0x16=DISABLED                ║
║    │    │DEVI buildcache:  [-a: arch] DrvDir  //Build Inf auto-cache. ManualRef  *infcache:CachFile   ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To search for(install) the driver from CAB,INF or a specified directory.                     ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │☼*dummy indicates not installing really but only for debugging,like viewing DevClass.        ║
║    │    │  *devid:DeviceID,to install specified driver.                                               ║
║    │    │  *nnverify:not to disable driver signature veryfying; *rverify:to restore the setting of    ║
║    │    │  disabling driver signature veryfying. *7pe[-]:to use Drvload by force.                     ║
║    │    │  *inner:not to use Drvload by force. *drvload/*devcon:to use drvload preferentially(default ║
║    │    │  )/devcon.*retid:VarName,to return the device ID of this installation.                      ║
║    │    │  *auto:to automatically shift between whether to handle INF or not(The default is to handle ║
║    │    │  for CAB.Notice that INF may be overwritten). *sys:to copy to the system directory.         ║
║    │    │  *cab:force to be cab file.  *comp+: find ID compatible also. *ret:RetName Report           ║
║    │    │  *IdCah:PeVar: Cache of ID for times    *infcache:InfCacheFile   *optsys[:v] Systool first  ║
║    │    │  *num:Times                                                                                 ║
║    │PARA│■To specify the CAB path:"$" before CAB indicates installing driver after extracting it,or   ║
║    │    │  else not installing; can be embedded.                                                      ║
║    │    │■"$" before INF indicates executing standard mode of copying,or else only loading driver     ║
║    │    │  (likely not to load if the device does not exist);                                         ║
║    │    │■*nocheck:to install by force without checking hardware ID;                                  ║
║    │    │■*rescan[:Fun]:to rescan hardware changes(the default for installing NT6 by no force).It     ║
║    │    │  can be used alone;  Fun:0,1,2,3,4,5,7. *rescan:3 or 2                                      ║
║    │    │■*norescan:to disable rescanning hardware changes;                                           ║
║    │    │■*showdev:display dev.                                                                       ║
║    │    │■MatchLevel:the number of sections for DeviceID,separated by &,2 by default;                 ║
║    │    │■To query:DeviceID by default,*listdev=c:ID compatible,*listdev=i:unique ID;                 ║
║    │    │  *ALL:including devices not existing.                                                       ║
║    │    │■*Surport '"str1""str2""str3"'                                                               ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│DEVI *retid:&&IDS $%SystemRoot%\DRV.CAB  or DEVI MyInf*.INF or DEVI %SystemRoot%\Inf\*.INF   ║
║    │    │DEVI %SystemRoot%                                                                            ║
║    │    │DEVI *extract myCab.CAB,,D:\ABC                                                              ║
║    │    │DEVI *dummy *sub  D:\ABC                  //to print DevClass of all INF in D:\ABC to LOGS   ║
║    │    │DEVI *sub  D:\ABC,Net                     //to seek and install network driver in D:\ABC     ║
║    │    │DEVI *devclass:Net  $D:\DRV.CAB,,%TEMP%   //to seek and install network driver in D:\DRV.CAB ║
║    │    │DEVI *devid:PCI\VEN_8086&DEV_1229 $D:\DRV.CAB,,%TEMP%             //network card Intel8255x  ║
║    │    │DEVI *disable:PCI\VEN_14E4&DEV_16B5&SUBSYS_05001025&REV_10\4&14C08592&0&00E3 //to disable    ║
║    │    │     network card BCM.                                                                       ║
║    │    │     DEVI $$D:\MyDrvs\Drv1.inf            //♦standard installation mode,DefaultInstall,132   ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║DEVI│REM │☼This command applies self-defined(nonsystem)driver-seeking algorithm,capable of extracting  ║
║    │    │  the cabinet quickly for the driver possibly needed,and thus more drivers than needed are   ║
║    │    │  likely to be sought for one device.                                                        ║
║    │    │☼In the CAB,be sure to put each driver in a separate directory and ensure the INF file is    ║
║    │    │  always in the very front of current directory and it has been treated in advance.It is     ║
║    │    │  suggested using the matching program XCAB to produce it.                                   ║
║    │    │☼If the drivers are in the form of CAB,'$' and [ExtractDir] cannot be set at the same time   ║
║    │    │  in NT5.x OS(unless in the mode of NT6.x or *sys),but they can be absent together.          ║
║    │    │  If '$' is absent,the command will only extract files; If [ExtractDir] is absent,DEVI will  ║
║    │    │  extract the driver in a driver-matching way.INF files will be extracted to "%WinDir%\INF", ║
║    │    │  SYS to "%WinDir%\SYSTEM32\DRIVERS",and other files to " %WinDir%\SYSTEM32".                ║
║    │    │☼If the drivers are in the form of CAB,in NT6.x OS,with '$',[ExtractDir] is a temporary      ║
║    │    │  directory in %TEMP% if it is null or *(So it is with *sys).The directory will be deleted   ║
║    │    │  automatically after drivers are installed.If [ExtractDir] is present,'$' can be absent.    ║
║    │    │  ENVI will extract files in CAB to a specified directory according to the directory         ║
║    │    │  structure of the CAB.With '$' indicates installing the driver in the destination directory ║
║    │    │  after extraction.If not to install,the param *extract is needed.                           ║
║    │    │☼If other files are to be extracted to a specified directory,replace the directory           ║
║    │    │  separator in the file name with "#",eg,files in "SYSTEM32#WBEM#MOF#XXX.MOF" will be        ║
║    │    │  extracted to "%SystemRoot%\SYSTEM32\WBEM\MOF\XXX.MOF".                                     ║
║    │    │☼In NT6.x WinPE,DEVI will directly install "%WinDir%\INF" without veryfying the matching of  ║
║    │    │  hardware ID.                                                                               ║
║    │    │☼Another function of this command is to seek drivers from local disks,like "DEVI \Windows,   ║
║    │    │  Display". The command is not perfect yet,and it will provide a dialogbox for driver files. ║
║    │    │  Hence,for this function,technological supports are not available.                          ║
║    │    │  *self indicates seeking *.inf in the directory with INF file; *sub indicates seeking in    ║
║    │    │  the directory with INF file as well as in its subdirectory; *self*sub both absent means    ║
║    │    │  seeking in the directory with INF\*.inf                                                    ║
║    │    │☼DevClass: Battery CDROM Computer DiskDrive Display FloppyDisk HIDClass Image Infrared       ║
║    │    │  Keyboard MEDIA Media Monitor Mouse Net PCMCIA Ports Processor SCSIAdapter System USB       ║
║    │    │  Volume fdc hdc                                                                             ║
║    │    │☼%&__DEVI.REBOOT%: Need reboot    place * of  ID with^*(or^).                                ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'DFMT'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│DFMT <DrvLetter>,<DiskFormat>[,DiskVol][,QFDisk][,UnitSize][,CMPS]                           ║
║    │    │DFMT* FORMAT params                                                                          ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To call FORMAT.COM to format disk.                                                           ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■DrvLetter:to specify a disk to format;                                                      ║
║    │    │■DiskFormat:supportive of FAT,FAT32,NTFS and exFAT.If params are set,format according to     ║
║    │    │  them.If not,format skipped;                                                                ║
║    │    │■DiskVol:Volume to set when formating disk;                                                  ║
║DFMT│    │■QFDisk:number,not 0:quick format; 0:to format by default; If absent,quick format;           ║
║    │    │■UnitSize:number,absent or 0 indicates default,not 0 indicates values as 512*(2^n),ie,512,   ║
║    │    │  1024,2048,...,65536.                                                                       ║
║    │    │■CMPS:number,absent or 0:not to compress,1:to compress.It is only applicable to NTFS.        ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│DFMT R:,NTFS,RamDisk,1 or DFMT \\?\Volume{00ae8ebe-4bd2-11ed-845d-206a8a65dfb8},FAT32        ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼This command supports formatting hard disk and virtual hard disk,but not floppy disk;       ║
║    │    │☼Unit size is recommended to be default 0 or simply absent;                                  ║
║    │    │☼This command is executed in silent mode,displaying no information.So be cautious when       ║
║    │    │  operating.The format is in a complete form.                                                ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'DIR'                                                                                        ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│DIR [--wd:[*]WorkDir] VarName params...                                                      ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To get a file list,one line for one file.                                                    ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║DIR │PARA│☼--wd:[*]WorkDir indicates the working directory to set the commands to execute.Bracket it   ║
║    │    │  with double quotes if there is null character."*" indicates naming the file with the       ║
║    │    │  directory name;                                                                            ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│TEAM DIR &INILIST /s /O:N C:\*.INI| MESS. %&INILIST%@#OK                                     ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │For params behind,please refer to the DOS command DIR.The param B is implied in them.        ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'DISK'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│DISK  [-check] [-skiptp:tp1;tp2] [-skippt:hd1:lpt1;hd1:lpt2]  [-from:DrvChar[Tbl]] [-cdrom]  ║
║    │    │      [VarName],[HardDiskID],[PartID],FuncID,[UDiskDrv[Tbl]] [,Option]                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To get information of hardisk,unmount or assign drive letter and disk volume.                ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■VarName:string,can be a drive letter,the name of windows system directory beginning with    ║
║    │    │  '\',variable name in string or null;                                                       ║
║    │    │■HardDiskID:number,the sequence number of a hard disk basing 0,can be absent;                ║
║    │    │■PartID:number,the sequence number of a partition basing 1,can be absent;                    ║
║    │    │■FuncID:number,0 by default if absent;                                                       ║
║    │    │■UDiskVol:a letter or driver letter,can be absent.                                           ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│DISK ,,,1,U: or DISK ,,,2,U: or DISK uDisk,,, or DISK \Windows|\WinXP|\WinNT|\Windows7,,,1,U ║
║    │    │DISK uAllPart,,1 or DISK Part,0 or DISK ,1,3 or DISK E:,1,4,1 or DISK Vol,0,2 or DISK ,,,3,U ║
║    │    │DISK -check -from:C-V ,,,1,?:,0x71 //to order existing drive letters                         ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │1   │  DISK  ,,,FuncID[,UDiskDrv][,Option]                                                        ║
║    │REM │☼If "HardDiskID","PartID" and "VarName" are null,"FuncID" shall not.Bit 0 of "Option" means  ║
║    │    │  only sorting out the partition with a drive letter,Bit 1 verifying the validity of         ║
║    │    │  partition,bit 2 skipping patition of 0xEE/0xEF type,bit 4 sorting out hidden partition     ║
║    │    │  with a drive letter,bit 4 sorting out CDROM as well,and bit 5 limiting driver table.       ║
║    │    │  The command will assign drive letters according to following "FuncID":                     ║
║    │1.1 │  DISK  ,,,1 or 4[,UDiskDrv][,Option]   //4 means bit 2 of Option is set                     ║
║DISK│    │  1.To reassign drive letters to all the visible partitions according to the sequence        ║
║    │    │    numbers of the fixed hard disk and partions,example 1;                                   ║
║    │    │    UDiskDrv=?, means the fixed hard disk follows.                                           ║
║    │1.2 │  DISK  ,,,2 or 22[,UDiskDrv]  //22 is the first main partition;                             ║
║    │    │  2.To assign drive letters to the first main partition of hard disks and then to other      ║
║    │    │    partitions,example 2;                                                                    ║
║    │    │    UDiskDrv=?, means the fixed hard disk follows.                                           ║
║    │1.3 │  DISK  ,,,3,UDiskDrv[,Option]                                                               ║
║    │    │  3.Not to ajust drive letters of fixed (and removable) hard disks,but the ones of U disk,   ║
║    │    │    example 10;                                                                              ║
║    │2   │  DISK  VarName[,,,FuncID][,UDiskDrv]                                                        ║
║    │    │☼If "HardDiskID" and "PartID" are both null,but "VarName" not,the command will perform       ║
║    │    │  respective functions according to the following two forms of "VarName":                    ║
║    │2.1 │  DISK  VarName                                                                              ║
║    │    │  1.If "VarName" is in the form of a string variable,the command will assign the number of   ║
║    │    │    hard disks of the computer to the specified "VarName",example 3;                         ║
║    │2.2 │  DISK  \system directory name[,,,FuncName][,UDiskDrv]                                       ║
║    │    │  2.If "VarName" is the system directory name beginning with '\',the command will seek and   ║
║    │    │    load the system registry and assign drive letters according to the assignment system of  ║
║    │    │    the hard disk.To seek more than one possible system directory names,use '|' to separate  ║
║    │    │    them.(example 4); If this fails,the command will continue with the subsequent plan of    ║
║    │    │    drive letter assignment according to the value of "FuncID",example 1,2 and 10;           ║
║    │3   │  DISK VarName,,PartID                                                                       ║
║    │    │☼If "HardDiskID" is null,but "PartID" not,the command will assign the number of mounted      ║
║    │    │  partitions of hard disk of the computer to a specified "VarName",example 5;                ║
║    │4   │  DISK  VarName,HardDiskID                                                                   ║
║    │    │☼If "HardDiskID" is not null,but "PartID" is,the command will assign the number of mounted   ║
║    │    │  partitions of the specified hard disk to a specified "VarName",example 6;                  ║
║    │5   │  DISK [VarName],HardDiskID,PartID                                                           ║
║    │    │☼If "HardDiskID" is not null,nor is "PartID",the command will dispose in the following       ║
║    │    │  three ways according to the format of "VarName":                                           ║
║    │5.1 │  DISK ,HardDiskID,PartID                                                                    ║
║    │    │  1.If "VarName" is null,the assigned drive letter and volume of this partition will be      ║
║    │    │    unmounted,example 7;                                                                     ║
║    │5.2 │  DISK  drive letter or volume,HardDiskID,PartID,[FuncID]                                    ║
║    │    │  2.If "VarName" is a drive letter or volume(like E: or E:\),the command will assign a       ║
║    │    │    specified drive letter or volume to the partition.If "VarName" is absent or 0,or the     ║
║    │    │    partition is a hidden one,the command will not assign any drive letter or volume.        ║
║    │    │    If "FuncID" is not 0,the command will assign a drive letter or volume whether the        ║
║    │    │    partition is hidden or not,example 8;                                                    ║
║    │5.3 │  DISK  VarName,HardDiskID,PartID                                                            ║
║    │    │  3.If "VarName" is not null or in accordance with the format of drive letter,the command    ║
║    │    │    will assign the drive letter of the partition to a specified "VarName",example 9;        ║
║    │    │☼"UDiskVol" indicates the initial drive letter assigned to the USB Flash Disk when           ║
║    │    │  the drive letters are being automatically sorted out.If absent,the drive letters of the u  ║
║    │    │  disk will not be sorted out;                                                               ║
║    │    │☼The command for sorting out drive letters should be placed at the front of PECMD.INI.       ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'DISP'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│DISP [-confirm] [-delay] [=DispID] [@PosMtrx] [S MultiDispMode] [P] [W HrzRsl H VerRsl]      ║
║    │    │     [B ColorDepth] [F RefreshRate] [T Wait ms] [O Ori]                                      ║
║    │    │DISP <?|?*>  [=DispID] VarName     //To query the current or all possible configs,multiline, ║
║    │    │                                     separated by TAB in the line.   -<r|n>sort:sort         ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To set display params. *delay:to write to registry only.MultiDispMode:                       ║
║    │    │0x81=1:to display,0x82:to copy,0x84:to extend,0x88=2:to display.                             ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║DISP│PARA│■To specify the screen params respectively.All absent,set automatically.DispID starts from   ║
║    │    │  0,P:to set as the main display. -size:only_size -reset -delay  -ori:Quey_Orient            ║
║    │    │  PosMtrx:X0:Y0:X1:Y1:X2:Y2:X3:Y3... coordinates of the base positions in all displays.      ║
║    │    │  -bright[?]:Val/Name  -guis:gui mode                                                        ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│DISP =1 S0x84 P W1024 H768 B32 F70 T5  or DISP  ? &CUR DISP ?* =0 &ALL or DISP =1 S0x84 P    ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │The first three groups of params can be used separately.Use DISP f75 to set the RefreshRate  ║
║    │    │as 75. %&YesNo%=Yes:Set NO:Ret TIMEOUT:Ret on timeout                                        ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'DTIM'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│DTIM [-right] [*] <Name>,<Shape>,[InitVal],[Event],[Type]                                    ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To create a date/time indicator.                                                             ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │  * before <Name> indicates being automatically recycled before quitting the block or        ║
║    │    │  function.                                                                                  ║
║    │PARA│■Name:string,should be unique and not the same as those of other controls or environment     ║
║    │    │  variables.                                                                                 ║
║    │    │■Shape:position and size of the editbox.The format is:<L(left)T(top)W(wide)H(high)>,L,T,W    ║
║    │    │  and H are respectively followed by corresponding numbers.                                  ║
║    │    │■InitVal:string,characters to input when initializing the editbox.\n or the native newline.  ║
║    │    │  The input of a comma,as well as an event,can be achieved by transfering to a variable.     ║
║DTIM│    │■Event:the command to execute when ENTER is pressed in the editbox or the editbox is double  ║
║    │    │  clicked.It should be a valid one supported by PECMD.                                       ║
║    │    │■Type:number(accumulated),0 by default as normal editbox,minus:disabled,0x10bit:invisible,   ║
║    │    │  0x20bit:long date format,0x40bit:time format,0x80bit:short century date format,short date  ║
║    │    │  format by default,0x100bit:to ajust with up and down,0x200:with checkbox.                  ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│ DTIM Dtim1,L32T244W240H24,2008; 5; 12,Mess,0x200                                            ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼This command is generally located between _SUB and _END.               Refer to _SUB,CALL.  ║
║    │    │☼Use "ENVI @Name.Enable=[#]Val" to set its serviceablity.0:disabled; 1:enabled(not to        ║
║    │    │  respond).#:used in a subthread.                                                            ║
║    │    │☼Use "ENVI @Name.Visible=Val" to set its visiblity.0:invisible,not 0:visible.                ║
║    │    │☼Use "ENVI @Name.VAL=Val1; Val2; Val3" to set year,month and day or hour,minute and second.  ║
║    │    │☼Use "ENVI @Name.VAL=?Name1; Name2; Name3; Name4; Name5" to return the mark of year,month,   ║
║    │    │  day and week or hour,minute and second.mark:                                               ║
║    │    │  0:effective,1:to cancel checked,-1:failed.                                                 ║
║    │    │☼Use "ENVI @CtrlName.*del=" to delete.                                                       ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'EDIT'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│EDIT[-|+.*=] [-right] [-center] [-vcenter[:Xshrink]] [-rich] [-3D] [*]                       ║
║    │    │   <EditBoxName>,<EditBoxShape>,[EditBoxContent],[EditBoxEvent],[EditBoxType],[Color],[Type] ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To establish a single-line/multiline editbox.                                                ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■- indicates horizontal scroll bar; | vertical scroll bar; + no frame; .not to convert \n,   ║
║    │    │  convert otherwise; * to preinterpret the event(variable); = the content of the editbox is  ║
║    │    │  the file name.The params above should closely follow the command word "EDIT" without any   ║
║    │    │  null character,not sequence sensitive.                                                     ║
║    │    │  The text is left-aligned by default,-right:right-aligned,-center:center-aligned,-rich:to   ║
║    │    │  to set colors,-3D:3D profile. -u2d:unix2dos                                                ║
║    │    │  * before <EditBoxName> indicates being automatically recycled before quitting the block or ║
║    │    │  function.                                                                                  ║
║    │    │■EditBoxName:string,should be unique and not the same as those of other controls or          ║
║    │    │  environment variables.                                                                     ║
║    │    │■EditBoxShape:position and size of the editbox.The format is:<L(left)T(top)W(wide)H(high)>,  ║
║    │    │  L,T,W and H are respectively followed by corresponding numbers.                            ║
║    │    │■EditBoxContent:string,characters to input when initializing the editbox. \n or native       ║
║    │    │  newline.The input of a comma,as well as an event,can be achieved by transfering to a       ║
║    │    │  variable.                                                                                  ║
║EDIT│    │■EditBoxEvent:the command to execute when ENTER is pressed in the single-line editbox.It     ║
║    │    │  should be a valid one supported by PECMD.                                                  ║
║    │    │■EditBoxType:number(accumulated),0 by default as a normal editbox,minus:disabled,1:password  ║
║    │    │  inputbox,8:read-only,4:multiline,0x10bit:invisible,0x20bit:editable and supportive of      ║
║    │    │  automatical newline,0x40/0x800bit:to jump to the end/EOL; 0x100:to receive a name of file  ║
║    │    │  dragged in; 0x200:to receive all names of files dragged in,multiline; 0x400:number,        ║
║    │    │  0x1000:wrap by char. compatible:separate 2=disable,3=read-only.                            ║
║    │    │■Color:"TextColor#BackColor[#ActiveTextColor#ActiveBackColor]",default color if absent.      ║
║    │    │■Font:The format is "FontSize[~^][:FontName]". ~:Anti-scaling ^Kernel-size                   ║
║    │    │  Other adornment can be attached to the font name like [**BbUuIiSs#Weight#Width#CharSet#    ║
║    │    │  Quality#Orientation#Escapement#OutPrecision#ClipPrecision#PitchAndFamily].Also applicable  ║
║    │    │  to settings of other fonts.  Xshrink<0:div_fontHigh                                        ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│EDIT Edit1,L32T244W240H24,C:\Windows,ENVI @Label1=%Edit1%,0x224                              ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼This command is generally located between _SUB and _END.               Refer to _SUB,CALL.  ║
║    │    │☼Use "ENVI @EditBoxName=TextContent" to set the content of the editbox.     Refer to ENVI.   ║
║    │    │☼Use "ENVI @EditBoxName.Enable=[#]Val" to set its serviceablity.0:disabled; 1:enabled(not    ║
║    │    │      to respond).#:used in a subthread.                                                     ║
║    │    │☼Use "ENVI @EditBoxName.ReadOnly=Val" to set the status of read-only; 0:not read-only,not 0  ║
║    │    │      :read-only.                                                                            ║
║    │    │☼Use "ENVI @EditBoxName.Visible=Val"to set its visiblity.0:invisible,not 0:visible.          ║
║    │    │☼Use "ENVI @EditBoxName.LINE=Val" to make some line visible,but the line cannot be queried.  ║
║    │    │      Line ID starts from 1. 0 and 1 indicates jumping to the line ID 1 directly,and "-1" to ║
║    │    │      the end.                                                                               ║
║    │    │      Being led by : indicates a relative position.A minus indicates the number of lines to  ║
║    │    │      scroll up.                                                                             ║
║    │    │☼Use "ENVI @EditBoxName.Val=?VarName" to obtain the realtime content.                        ║
║    │    │☼Use"ENVI @EditBoxName.Color=[:FontSize[:Font:]BITUL;][Color[#BkColor]][;StartPos[;EndPos]]" ║
║    │    │      to set colorful font.The position is calculated according to the content,starting from ║
║    │    │      0.Position being absent indicates the currently-selected range.-1 indicates the end.   ║
║    │    │      The EndPos is -1 by default.A Chinese character and a line break occupy one position.  ║
║    │    │      B:bold,I:italic,U:underline,L:link,T:strickout.                                        ║
║    │    │      The position can be "LineID:[ColID]",LineID and ColID start from 1.                    ║
║    │    │☼Use "ENVI @CtrlName.*del=" to delete.                                                       ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'EJEC'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│EJEC [C-|U-|X:|DiskNum],[OPID]                                                               ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To eject or close the specified CDROM drive tray; To romove the specified USB drive.         ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■Param "C-":to operate all possible CDROM drive trays;                                       ║
║    │    │■Param "U-":to remove all possible USB disks;                                                ║
║EJEC│    │■Param "X:":to operate CDROM drive or USB disk with the specified drive letter;              ║
║    │    │■OPID:to specify the operation of ejecting or closing CDROM drive tray.Absent,0 by default,  ║
║    │    │  indicating ejection,1:to close,R:to remove the USB disk.                                   ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│EJEC C- or EJEC U- or EJEC H: or EJEC H:,1 or EJEC C-,1                                      ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼This command is applied to a simplified PE which does not have the icon for u disk          ║
║    │    │  management in its system tray; For PE which has it,it is advised to use the system tray.   ║
║    │    │☼Do not use this command in a config file; The command of INIT with the param "I" will       ║
║    │    │  install the function of this command to the menu of system tray.                           ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'ENVI'    'SET'                                                                              ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│ENVI[.$#%~~.*=<>-x1-[Lfr:Lto[:Rfr:step]]] [&[&]|^][$][#][-][*][ ][[~Destructor~]Name][=Val]  ║
║    │    │ENVI[.$#%~~.*=<>] &::[Name][=Val]   //global PE variable                                     ║
║    │    │SET-copy PEVarName=SrcPEVarName[;SrcOff;Len;DstOff]  //copy binary object, []: part_copy     ║
║    │    │SET-cmp  PEVarName=SrcPEVarName[;SrcOff;Len;DstOff];[S|s|I|i]  //Compare,S/s/I/i:String,     ║
║    │    │          S/I:WCHAR, s/i:char,I/i no case,  S/s/I/i whithout Len means strcmp without len    ║
║    │    │SET-tom  PE_VarName=SrcPEVarName   //UNICODE to multibyte string(like GBK)                   ║
║    │    │SET-tow  PE_VarName=SrcPEVarName   //multibyte string(like GBK)to UNICODE                    ║
║    │    │SET-addr [AddrVarName][; LenVarName]=SrcPEVarName //to return memory address,length of byte  ║
║    │    │SET-swap  PE_VarName=PE_VarName2              //to swap the content of an object.            ║
║    │    │SET-make PE_VarName=[Addr|&PEVarName[@[$]Offset]][;[*][[$]ByteNum]]  //create a PE variable  ║
║    │    │    according to the memory address and length. * indicates a character string. $:N Byte     ║
║    │    │SET-mkdummy PE_VarName=[Addr][;[*][[$]ByteNum]] //the same as -make,but only create a dummy  ║
║    │    │        Addr may be  PEVAR[@[$]Offset] or (shm)ShmCtrName[@[$]Offset]   ByteNum=~:from obj   ║
║    │    │SET-mkfixdummy PE_VarName=[Addr][;[*][ByteNum]] //the same as mkdummy,but memory is fixed    ║
║    │    │object using the original memory.                                                            ║
║    │    │SET-zero  PE_VarName=[[$]Val][@[$]Off]][;[$]Num]  //clear memory, default:0.$:N B [times]    ║
║    │    │//-env //to temporarily cancel forcelocal so as to operate the environment variable.It       ║
║    │    │should be the first suffix.                                                                  ║
║    │    │//-env //temporarily cancel forcelocal.Should be the first suffix.                           ║
║    │    │//-std //temporarily set EnviMode=1.Should be the first suffix.                              ║
║    │    │//-ret[TraceLevel]    //to trace a specified level(1 by default) and then operate the        ║
║    │    │PE_VarName,like the return of a function.                                                    ║
║    │    │//-get[TraceLevel]    //to trace a specified level(1 by default) and then obtain the         ║
║    │    │PE variable,like transfering a function to a PE_VarName.                                     ║
║    │    │//-raw    //the part after = will not be interpreted.                                        ║
║    │    │SET-*StructName  PE_VarName.Member=Num[:[~]ByteNumOffsetAddition]                            ║
║    │    │SET-DataType  PE_VarName=Num[:[~]ByteNumOffset]    //to produce binary data of specified     ║
║    │    │type in PE object. BOOLEAN=bool=1 BOOL=enum=4. IntegerValue can be &var(addr).               ║
║    │    │SET?*StructName[:0[@]s] SrcPeVarName.Member=VarName[:[~]ByteNumOffsetAddition]               ║
║    │    │SET?DataType[0[@]s] SrcPeVarNameORAddr=VarName[:[~]ByteNumOffset] //obtain binary data of spe║
║    │    │ci. type in PE object. 0:to fill zero.@:to remove 0x. s: for sign.  ~: unit of type          ║
║    │    │//DataType:char wchar short int long longlong int64 float [l]double [int]ptr(pointer)        ║
║    │    │ENVI^ is exclusively used in control command.^ refers to the first suffix.                   ║
║    │    │SET-def  ABC  //to ensure there is variable ABC of this level.If not,add a dummy variable;   ║
║    │    │If so,don't do anything.ENVI &&ABC also works.                                               ║
║    │    │ENVI-ex ReturnVarName=[&[&]]VarNameQuery //to check if such a variable exists.& indicates PE ║
║    │    │variable,&& PE variable of this level,otherwise environment variable.                        ║
║    │    │The first prefix before VarName ^ indicates an environment variable (ENVI ^ABC=1).Likewise,  ║
║    │    │%^VarName% is also an environment variable; It is out of the control of FORCELOCAL.          ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To set or eliminate environment variables.  SET is used for PE variable.SET equals ENVI &,   ║
║    │    │SET-def and SET & equal ENVI &&.The others are the same as ENVI.-[f1:t1[:f2]] for vector.    ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■To specify the name and value of an environment variable.                                   ║
║    │    │  "." indicates converting \n into newline.For a control,it indicates disabling newline."$"  ║
║    │    │  indicates converting the value into corresponding characters basing on hex,8 a group or    ║
║    │    │  separated by space; "%" indicates converting basing on decimal(default),separated by space ║
║    │    │  ; Both are UNICODE. "~" indicates interpreting the variable once again; "~~" twice more.   ║
║    │    │  "*" indicates if there are many rounds of conversion based on "$""%",[*ReptFactor] refers  ║
║    │    │  to data.= indicates repeating according to the spaced word,[*ReptFactor] refers to a word. ║
║    │    │  # coordinating with $% indicates being converted into corresponding bite/memory mode.      ║
║    │    │  $$:autoWide.                                                                               ║
║    │    │  <> aim at PE variables,< indicates appending at the back,while > insertion at the front.   ║
║    │    │  "$" indicates setting environment variables of system level and "#" of user level,both of  ║
║    │    │  which can be used simutaneously,broadcast all programs and wait for 5-second timeout when  ║
║    │    │  the system is busy.*- coordinate with $#.- indicates the THREAD broadcast backstage;       ║
║    │    │  * indicates only setting without broadcast.A later broadcast can be made by using ENVI.    ║
║    │    │  -x1 -x2 -x3 indicates interpreting the expression 1~N times.                               ║
║    │    │  "&" indicates setting a function or PE variables of a window.                              ║
║    │    │  "&&" indicates the function of defining,ie,defining or setting variables of current level. ║
║    │    │  If such variables do not exist,they will be added.If exist,only set environment variables  ║
║    │    │  used in this program.Thus "&&" will also help to shield/protect variables of higher level. ║
║    │    │  Environment variables without = indicates deleting them,like "ENVI ABC".                   ║
║    │    │  PE variables without = means only clearing their content,like "ENVI &ABC".                 ║
║    │    │  Set environment variables as null if their values are not specified,like "ENVI ABC=" or    ║
║    │    │  "ENVI &ABC=".                                                                              ║
║    │    │  "ENVI *"(Name and Val absent) indicates transfering the drive letter for CDROM to a system ║
║    │    │  environment variable in the form of CDROM0,CDROM,CDROM1 and CDROM2.                        ║
║    │    │  "ENVI $" indicates broadcasting the notification of changes after setting following system ║
║    │    │  environment variables:                                                                     ║
║    │    │    Favorites      Favorites Directory                                                       ║
║    │    │    Desktop        Desktop Directory                                                         ║
║ENVI│    │    StartMenu      StartMenu Directory                                                       ║
║SET │    │    Startup        Startup Directory                                                         ║
║    │    │    Programs       Programs Directory                                                        ║
║    │    │    SendTo         SendTo Directory                                                          ║
║    │    │    Personal       MyDocument Directory                                                      ║
║    │    │    QuickLaunch    QuickLaunch Directory                                                     ║
║    │    │■"ENVI" indicates informing all programs of the changes of environment variables in the      ║
║    │    │  registry(5-second timeout,multithread or multiproess is applied to avoid feign death).     ║
║    │    │■Destructor:only effective the first time to define the PE variable."Destructor VarRef       ║
║    │    │  VarVal" will be called when the PE variable quits its definition range.                    ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│ENVI TEMP=%SystemDrive%\TEMP or ENVI &&ABC=123 or delete ABC:ENVI &ABC or ENVI$ NL=0d 0a     ║
║    │    │or ENVI$ DATA=*1M 30 0d 0a  or  ENVI= DATA=*1K 0x00  or ENVI$# &DATA=*1K 30                  ║
║    │    │or SET-def ~ClosehandleX~h=0.As destructing,ClosehandleX &h %&h% or SET~-x1-[1:2] B%%d=A%%d  ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼Progams executed by "EXEC" will automatically inherit the environment variables of this     ║
║    │    │  PECMD.In other words,the environment variable set by "ENVI" without "$" in the config file ║
║    │    │  is still effective in the subsequent "EXEC" programs.WinName and CtrlName can also carry & ║
║    │    │☼ENVI^ EXPORTLOCAL=1:to enable automatically inherting the PE variables of this PECMD.       ║
║    │    │☼ENVI^ EXPORTLOCAL=0:to redisable automatically inheriting the PE variables of this PECMD.   ║
║    │    │  (default).                                                                                 ║
║    │    │☼ENVI^ EXPORTLOCAL=&1:to enable automatically inherting the PE variables of this PECMD,only  ║
║    │    │  effective for the current and subsequent level,used in thread.                             ║
║    │    │☼ENVI^ EXPORTLOCAL=&0:to redisable automatically inheriting the PE variables of this PECMD   ║
║    │    │  (default),only effective for the current and subsequent level,used in thread.              ║
║    │    │☼ENVI^ FORCELOCAL=1:to force all variables to be PE variables.This is the simplest way to    ║
║    │    │  achieve muitithread or multitask(concurrent window).                                       ║
║    │    │☼ENVI^ FORCELOCAL=0:to cancel the forcing above (default).                                   ║
║    │    │☼ENVI^ EnviMode=0:mode compatible with 4.0,default.A dummy variable will not be              ║
║    │    │  interpreted.Variables are automatically interpreted non-sequentially in multiple rounds.   ║
║    │    │☼ENVI^ EnviMode=1:standard mode.A dummy variable will be interpreted as null.Variables are   ║
║    │    │  interpreted in turn once, but times for VarName before =.   (suggested)                    ║
║    │    │☼The command can be applied to refreshing environment variables when params are absent or    ║
║    │    │  only with "$".Null character is permitted.Pay attention to the unnecessary null characters ║
║    │    │☼In standard mode,variables undefined are left dummy rather than uninterpreted(a status of   ║
║    │    │  uncertainty actually).                                                                     ║
║    │    │☼Attention:Null characters ahead and behind are permitted,like TEAM ENVI ABC= 123  |...      ║
║    │    │  ABC becomes " 123  " instead of "123".                                                     ║
║    │    │☼"~" indicates that the variable will be interpreted once more,ie,after it is interpreted,   ║
║    │    │  the data will be used as the variable name with its value returned.                        ║
║    │    │  "~." indicates that the data will be used as a param of a function with its value returned ║
║    │    │  "~*" indicates being interpreted according to "~." if the variable is in accordance with   ║
║    │    │  the param format,otherwise according to "~"."~~" means being interpreted as this twice.    ║
║    │    │  "~","~~","~." and "~*" can be called repeatedly.                                           ║
║    │    │☼Null character is permitted.Notice that null characters at the end will all be abandoned.   ║
║    │    │  like:ENVI  A=123          |  ENVI  B=123                                                   ║
║    │    │  //Null characters behind A=123 are effective while the ones behind B=123 are abandoned.    ║
║    │    ├────────────────────────────────────PE Variable ─────────────────────────────────────────────╢
║    │    │☼PE varibles are created and assigned by SET-def A=,SET &A= or ENVI &&A= (only assign if     ║
║    │    │  already existed) at current level; They are automatically destructed after quitting their  ║
║    │    │  range and cannot be deleted but cleared or modified to ensure their stable sharing.        ║
║    │    │☼PE varibles have the effect of shielding,ie,varibles of lower level shield the ones of      ║
║    │    │  higher level with the same name.Be sure to use PE variables in multithread so as to avoid  ║
║    │    │  mutual interference.                                                                       ║
║    │    │☼Access PE variables by %&VarName%,priority given to sublevel.When the function returns,PE   ║
║    │    │  variables of the level will be automatically released.Use SET directly for PE variables.   ║
║    │    │☼Global PE variable:accessible and operable for all functions and threads,not automatically  ║
║    │    │  destructed and effective throughout the program running.                                   ║
║    │    │☼PE variables behind the sharing point will be automatically copied to the subthread after   ║
║    │    │  a thread is created.                                                                       ║
║    │    │☼Variables of windows and functions with lasting stacks (*function)are shared while those    ║
║    │    │  of the subsequent functions or blocks are not shared and they are automatically duplicated ║
║    │    │  in the subthread.                                                                          ║
║    │    │☼Programs executed by "EXEC" will not automatically inherit the PE variables of this PECMD.  ║
║    │    │  WinName and CtrlName can carry &.                                                          ║
║    │    ├─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │☼Value transfer and referencing transfer.Value transfer:It is the value that is transfered   ║
║    │    │  and it is one-way transfer from the caller to the callee,like %ABC% with a pair of %.      ║
║    │    │☼Referencing transfer:It is the variable name that is transfered and it is two-way from the  ║
║    │    │  caller to the callee.Numeric values can be transfered back,like ABC without a pair of %.   ║
║    │    │◙Attention should be paid that referencing transfer supports binary inclucing the binary 0,  ║
║    │    │  which is not suitable for value transfer.                                                  ║
║    │    ├─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │☼To refresh the desktop: ENVI @@DeskTopFresh=[clearicon][;][1/2/4/8/16][;[-/+]PATH]          ║
║    │    │  //1:to refresh the desktop and the window of My Computer. 4:for change                     ║
║    │    │  //2:to refresh the desktop professionally only.clearicon:to clear the icon cache(first).   ║
║    │    │  //8:to refresh ICO and file associations.                                                  ║
║    │    │  //16[:func]:to refresh path(Desktop), -to remove,+to add,or refresh.                       ║
║    │    ├─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │☼To enable the tray menu:           ENVI @@TaskIcoMenu=1                                     ║
║    │    │☼To disable the tray menu:          ENVI @@TaskIcoMenu=0                                     ║
║    │    │☼To switch between tray menu enabling/disabling: ENVI @@TaskIcoMenu=2                        ║
║    │    │☼It is generally used for hotkeys of system level and it is the system tray to be operated.  ║
║    │    │  If it is used in a program,it is of program level and eliminated automatically when the    ║
║    │    │  program exits.                                                                             ║
║    │    ├─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │☼HELP default color: ENVI^ HelpColor=[*CMDLineHeight] [ForeColor][#BkColor]      //global    ║
║    │    ├─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │☼String breaking: ENVI^ Arg=*[BreakCharSet]BrokenStrings                                     ║
║    │    │  = being followed by * indicates that the breaking character between the broken strings     ║
║    │    │  will be treated as a dummy argument,or else abandoned.The params obtained by ENVI^ Arg=    ║
║    │    │  will overwrite the param list of the current function or LAMDA.The referencing of these    ║
║    │    │  params is the same as those of a function.                                                 ║
║    │    │  BreakCharSet:If null,indicated as :sp:; Particularly,:sp: indicates null character;        ║
║    │    │  ] is indicated as \] and \ as \\;Variables are supported to transfer such characters.      ║
║    │    │  [] outside of BreakCharSet cannot be absent.If = is followed by *,the dummy arguments of   ║
║    │    │  odd number are treated as words,while the ones of even number are the constitution of      ║
║    │    │  BreakCharSet(null possibly).                                                               ║
║    │    ├─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │☼Clipboard: ENVI^ Clipboard=Str          //variables supported                               ║
║    │    │☼Clipboard: ENVI^ Clipboard?=VarName     //to query                                          ║
║    │    ├─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │☼To query the version of a file: ENVI ?FileVarNm[,ProduVerNm][,2]=FVER,FileNm   //2:NOT MUI  ║
║    │    ├─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │☼To obtain the name of a dragged file: ENVI ?[SingleName],[AllName]=DROPFILE,wParam          ║
║    │    │  The correspondant message is WM_DROPFILES.wParam is the first message param.               ║
║    │    │  SingleName indicates returning the first,while AllName returning all in multiline.         ║
║    │    │  Eg: ENVI @LABE1.MSG=0x0233::wp,lp, CALL OnDrop1 %wp%  %lp%                                 ║
║    │    │  _SUB OnDrop1                                                                               ║
║    │    │       TEAM ENVI  ?&&F1,&&FS=DROPFILE,%1| ENVI @LABE1=%&FS%                                  ║
║    │    │  _END                                                                                       ║
║    │    ├─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │☼To move the position of mouse: ENVI @@Cur=X;Y             //"; " or ",",the same below.     ║
║    │    │☼Query mouse_position : ENVI @@Cur=?[@HWND;][[Nm]X][;[Nm]Y][;POINTNm][;KeyNm][;RcNm][;InNm]  ║
║    │    │☼To query the position of mouse: ENVI @WinName.Cur=?[VarNameX][;VarNameY]                    ║
║    │    │  [;VarNameCustCoordX][;VarNameCustCoordY]                                                   ║
║    │    │☼To query the position of mouse: ENVI @WinName.Cur=X;Y                                       ║
║    │    │☼To display or hide mouse: ENVI @@Cur=*Num  //0:to hide,1:to display,should be paired.       ║
║    │    │☼To query WinID and CtrlID: ENVI @WinName_CtrlName.ID=?[WinIDVarName][;CtrlIDVarName]        ║
║    │    ├─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │☼To query the position of a file:ENVI ?[StartVarName][,LenVarName][,CluSizeVarName]          ║
║    │    │  [,DiskBlkListVarName][,BlkNumVarName][,PartStartVarName]                                   ║
║    │    │  [,DEVRetVarName]=FPOS,FileName                                                             ║
║    │    │  DiskBlkList:indicating the distribution in partitions,one line for a block with its start  ║
║    │    │  and lenghth in it successively.Start -1 indicates special compression or hole.             ║
║    │    │  //65535 blocks at most; 65536 indicates being unfinished possibly,byte as the unit,-       ║
║    │    │  before BlkNum indicates the address relative to the 0 cluster.Start -38:for resident file. ║
║    │    ├─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │☼To query the window including the point: ENVI ?[Name][,TopName]=PWIN,[x],[y][,Flag]         ║
║    │    │  Flag:1=skip hidden  2=skip disabled 4=skip transparent 0:all default=3                     ║
║    │    ├─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │☼MouseCaptureA: ENVI @WinName or CtrlName.MouseCapture=1/0   // 1:enabled,0:released         ║
║    │    │☼MouseCaptureB: ENVI @WinName.MouseCapture=#1/#0             // #1:enabled,#0:released       ║
║    │    ├─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │☼ENVI @@EATEKEYS=CombKey1 CombKey2 ...  //to intercept keys,with the same format as HOTK,    ║
║    │    │  but null character is not permitted.                                                       ║
║    │    │  like ENVI @@EATEKEYS=VK_LWIN  VK_RWIN ALT+VK_TAB  Alt+VK_ESCAPE  Ctrl+VK_ESCAPE            ║
║    │    ├─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │☼ENVI @@RMENU=VarName; FileName        //to obtain the right click menu,multiline.           ║
║    │    │  The blank line generally indicates separators.                                             ║
║    │    ├─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │☼Command Alias: ENVI^ Alias [-opt] CMDAlias=[CMDFrontHalf]  //the alternative command alias  ║
║    │    │  for the front half of the command.-opt:to optimize.                                        ║
║    │    ├─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │☼Switch ENVI $# Broadcast:ENVI^ EnviBroad=0/1/-          //1:enabled(default); 0:disabled;   ║
║    │    │  -:backstage                                                                                ║
║    │    ├─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │☼Switch &&__arg param list(compatible to the lite version):ENVI^ __arg=0/1   // 1:enabled;   ║
║    │    │  0:disabled(default)                                                                        ║
║    │    ├─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │☼PECMD memory varible:ENVI^ memvar=[?RetVarName,][:ByteNum:]AddrOffset,Val   //to modify/    ║
║    │    │  query PECMD memory variable.                                                               ║
║    │    ├─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │☼PECMD memory varible:ENVI^ LoadEnvi [[HKCU\]SubPath|-] [VarName]    //to update [EnviVar]   ║
║    │    │  from registry,cautious!!                                                                   ║
║    │    ├─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │☼To query parent process ID: ENVI ?RetVarName=PPID,ProcID                                    ║
║    │    ├─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │☼To query if this process is an administrator. ENVI ?RetVarName=ISADMIN                      ║
║    │    ├─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │☼BkProgress: ENVI @WinName or CtrlName.percent=[Percent][RLCVEF][:BkColor][:PrgColor]        ║
║    │    │  [:TxtColor][:TXT]                                                                          ║
║    │    │☼ENVI  @@percent=WinID:[Percent][RLCVEF][:BkColor][:PrgColor][:TxtColor][:TXT]               ║
║    │    ├─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │☼Secret Mode(to clear after memory is out): ENVI^ zero=0/1 //0:disabled(default); 1:enabled  ║
║    │    ├─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │☼To disable X64 Fs Redirection: ENVI^  DisX64=1,OldCfg //Two commands should be used in      ║
║    │    │  To restore: ENVI^  DisX64=0,%OldCfg% //pair and Varname remain the same without modifying  ║
║    │    ├─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │☼To query version of windows: ENVI ?RetName=WinVer[+][;[^]*|File] //or ProductVer of file    ║
║    │    │    *:Kernel File, ^:FileVer, +:Fix WinVer with File                                         ║
║    │    ├─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │☼To query version of windows: ENVI ?RetVarName=ispe                                          ║
║    │    ├─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │☼To query program/system's bits: ENVI ?StrNm,NumNm=PEBIT,[FILE_System32Dir] //x86/x64/ia64   ║
║    │    ├─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │☼Query firmware envi_var: ENVI ?[$.]RetName[,AttrNm]=FVAR,VName[;NameSP_GUID]                ║
║    │    │    non_pe_var or $: return HEX     .:wstring                                                ║
║    │    │☼Operate firmware envi_var: ENVI ?[-v] [Attr]=FVAR+[$#%],VName[;NameSP_GUID],Val             ║
║    │    │         //empty val to delete.  -v:Val is name.   # byte mode. $ HEX. % dec mode.           ║
║    │    │    ENVI ?$&v=FVAR,BootOrder                                                                 ║
║    │    ├─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │☼Bind call-back function: ENVI^ WndProc[1|2|3][C][,PtrName]  //C:C_call                      ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMX │'EXEC'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│EXEC[|][*[[Num^$]|N|-]] [-catch] [-cmd:[:ms:]CMD][-clone:VarName] [-[h]pid:VarName] [-no64]  ║
║    │    │    [-user:[BASE]UsrName [-passwd:[BASE]PassWd|-passwd*BASEPassWd]] [-limit] [-wd:[*]WorkDir]║
║    │    │    [-REALTIME] [-HIGH] [-ABOVENORMAL]  [-NORMAL] [-BELOWNORMAL] [-LOW] [-IDLE] [-mem]       ║
║    │    │    [-min] [-max] [-show]  [-wait] [-hide] [-doc:[mode]] [-hook] [-runs] [-job] [-u2d]       ║
║    │    │    [-raw] [-logs:[?][*]LOGSFile] [-nowin] [-shel:"AutoCMD"]                                 ║
║    │    │    [-exe:execfilename] [-err] [-err+]  [--]   NAME[+]=[=][!][*][@][$][&]<EXEPath>[Param]    ║
║    │    │EXEC -poprmenu[:x.y]        FileName //to popup the right click menu of the file.            ║
║    │    │EXEC -runrmenu:MenuItemName FileName //to execute the specified item of the right click menu ║
║    │    │EXEC /InstallService name ⌠--gui-⌡[--delayservice ms] [--wait] [--nowait] [--nojob] [--1]    ║
║    │    │      [--hide] [--killwin Title] [--killwin2]  [--idle ms  [--idlewait]]    cmd_and_params   ║
║    │    │EXEC /RemoveService name                                                                     ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To execute EXE,BAT and CMD programs.                                                         ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■To specify the program path and params.The leading params are as follows(can be used        ║
║    │    │  simutaneously regardless of the sequence):                                                 ║
║    │    │☼-cmd:[:[*]ms:]CMD indicates the command to execute at a max/timer(*) time.1000ms by default.║
║    │    │  and the latter ":" can be absent if there is no confusion.It should be the first switch.   ║
║    │    │☼-limit indicates executing in a safe mode without administrator privileges;                 ║
║    │    │  --job refers to the mode of job,coordinating with = to ensure the child process to be      ║
║    │    │  killed together.                                                                           ║
║    │    │  /REALTIME real-time priority,/HIGH priority of HIGH,/ABOVENORMAL priority of ABOVENORMAL,  ║
║    │    │  /NORMAL priority of NORMAL,/BELOWNORMAL priority of BELOWNORMAL,/IDLE /LOW lowest priority ║
║    │    │☼-- indicates the end of switch -.It is only used when confusion arises between the switch   ║
║    │    │  and command;                                                                               ║
║    │    │☼-wait or "=" indicates waiting for the end of execution; -ex1:PE varibles of the closest    ║
║    │    │  level will be inherited as environment ones. -waiti  indicates waiting for GUI INIT.       ║
║    │    │☼-exe:execfilename indicates the name of an executable file,capabile of  executing files     ║
║    │    │  with nonstandard extension,like,myinstall.tmp.At this time,<EXEPath> behind is merely part ║
║    │    │  of the command line.It can be arbitary,irrelevant and even absent;                         ║
║    │    │☼-wd:[*]WorkDir indicates setting the working directory of EXE files,quoted if there is      ║
║    │    │  null character."*" indicates naming the file afer the directory;                           ║
║    │    │  -wd:** refers to the directory containing the this EXE file itself.                        ║
║    │    │  -wd:* refers to the directory containing the APP EXE file.                                 ║
║    │    │☼-code:<UTF8|ANSI|UNI|NUM> to specify the source code.                                       ║
║    │    │☼-pid:varname indicates storing pid in varname so that the process can be KILLed accurately  ║
║    │    │  -hpid:varname indicates storing handle of pid.                                             ║
║    │    │☼-hide,"!" or "*" indicates executing in a hidden way;                                       ║
║    │    │☼-show indicates executing in a visible way;                                                 ║
║    │    │☼-min,"^" or "_" indicates executing minimally;                                              ║
║    │    │☼-max or "&" indicates executing maximally;                   ☼-u2d unix2dos                 ║
║    │    │☼-doc[:mode] indicates document mode; Executed by the function of ShellExecute,some non-     ║
║    │    │  executable files (like *.TXT,.BMP etc.) can be opened; mode can be absent.                 ║
║    │    │  Such operations as open,edit,explore,find,print,properties and runas are operable,as well  ║
║    │    │  as opening an EXE file.runas is used in installing programs demanding super privileges.    ║
║    │    │☼-user: -passwd: -passwd* indicating running a program with a specified account;             ║
║    │    │☼-err indicates capturing standard error output,-err+ capturing standard output and          ║
║    │    │  standard error output;                                                                     ║
║    │    │☼-mem indicates the ghost process executed in the memory;                                    ║
║    │    │☼-raw indicates the primitive binary data captured,            EXEC*  -raw                   ║
║    │    │☼-nowin:no window(CREATE_NO_WINDOW)      ☼-nfb:to disable the cursor of waiting.             ║
║    │    │☼"$" indicates the document mode;                                                            ║
║    │    │☼-io:to take over the input and output of the subprocess.                                    ║
║    │    │☼"@" indicates executing on the background desktop(WinLogon),totally hidden,and thus unable  ║
║    │    │  to interact with users,only applicable to registeration,like:                              ║
║EXEC│    │  "EXEC @PECMD.EXE CALL $SHELL32.DLL,DllInstall,#1,U";                                       ║
║    │    │☼-hook:to modify the shutdown code in a process(hook the function "ExitWindowsEx").It is     ║
║    │    │  advised to execute "EXEC --hook =EXPLORER.EXE," to modify the shell function of shutdown   ║
║    │    │  ,thus when executing "Startup->Shutting down system","PECMD.EXE SHUT" will be executed to  ║
║    │    │  shut down the computer;                                                                    ║
║    │    │☼-runs indicates programs automatically running by getting them registered in the key of     ║
║    │    │  RUNS(suggested).They are run by Shell after logining.If "=" is used,they will be           ║
║    │    │  registered in "HKLM\Software\Microsoft\Windows\CurrentVersion\Run",otherwise,in            ║
║    │    │  "HKCR\Software\Microsoft\Windows\CurrentVersion\Run";                                      ║
║    │    │☼The suffix | behind EXEC refers to the pipe mode,supportive of binary command pipe at this  ║
║    │    │  time,as well as such redirection symbols as >,>>,<,2> and >&.                              ║
║    │    │☼EXEC*[[Num^$]|N|-] NAME= indicates storing the standard output of the program in the spec.  ║
║    │    │  variable NAME and forced to be in the waiting mode.Num:Lines(^Head $Tail). N: elimenating  ║
║    │    │  the newline to emerge into one.-: elimenating the last newline,otherwise the output remains║
║    │    │  unchanged.If the data is of large amount,it should be stored in a PE variable(like &ABC).  ║
║    │    │  NAME can be @CtrlName,thus it is displayed on the control realtime.NAME+= refers to the    ║
║    │    │  appending mode.                                                                            ║
║    │    │  So it is with -catch:to store the standard output of the program in the specified variable ║
║    │    │  NAME.                                                                                      ║
║    │    │  ▲Notice:EXEC*1 ... to terminate the command being executed after receiving a line of       ║
║    │    │  message.                                                                                   ║
║    │    │☼-clone:VarName:to clone a PECMD to run the script referenced by VarName.                    ║
║    │    │  --exe:capabile of specifying another PECMD.EXE,coordinating with --logs:[?][*]LOGSFile;    ║
║    │    │  with ? indicates only currently-opened LOGS are valid.                                     ║
║    │    │☼-no64:For pecmd32,this will not lift the restrictions to the X64 file system.               ║
║    │    │☼-shel:"AutoCMD"  Executed as SHEL   -incmd:clone for inner cmd                              ║
║    │    │☼-timeout:[#*]MiniSeconds[:ErrCode] wait process timeout, not kill if #.*include child       ║
║    │    │☼-su[a|e|c|d]:System privilege a:active e:environment c:skip uac. d:CWD -uac: =-suc          ║
║    │    │☼-svrsys[?]:Service switch desktop -svrusr[?]:Switch by user ID ?:Only in service script     ║
║    │    │  -svr-:disable switch                                                                       ║
║    │    │☼/InstallService:to install service with the name of "name"; /RemoveService:to remove        ║
║    │    │  service,only applicable to command line.In script,use EXEC =%MyName% /InstallService ...;  ║
║    │    │  --killwin:aiming at MESS-svr windows; --killwin2:aiming at MESS-svr2 windows;              ║
║    │    │  --wait:to wait for the end of the process(default),--nowait:not to wait;                   ║
║    │    │  --idle ms:to execute the command after being idle for ms;                                  ║
║    │    │  --nojob:not to kill the subprocess; --gui-: not INTERACTIVE --desk[-]:[not] switch display ║
║    │    │  --idlewait:not to terminate the running program if there is input,otherwise terminate if   ║
║    │    │  there is input; --usr:switch user ID                                                       ║
║    │    │  Executive body HERE_IS_SERVICE0:Service params can be embeded behind,100 characters.       ║
║    │    ├─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │☼To execute the embeded program,use --exe:[*[*]][?.TempFileExt:][cab:]Transfer[:CABSubFile]  ║
║    │    │  or transfer via the first word of a command.Without * indicates being directly executed in ║
║    │    │  memory; With * indicates being executed in a temporary file to be automatically deleted.   ║
║    │    │  The figure refers to the ID number of resource in EXEDATA,compressible in CMPS.            ║
║    │    │  If there are many programs,the latter(executed in a temporary file) should be adopted.     ║
║    │    │  &PEVarName,ud:UDFileName:UDInternalFileName,ex:self-extracted packet,** indicates deleting ║
║    │    │  more safely.?\ inidcates replacing a directory,and ?? replacing a FileName.                ║
║    │    │  Resources can be witten as:"[FileName]""#RsrName[|DirName]",and the latter pair of "" can  ║
║    │    │  be absent.The RsrName can be non-figure characters at this time.                           ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│EXEC =!CMD.EXE /C "DEL /Q /F %TEMP%"                                                         ║
║    │    │EXEC*1 &&LABEL=!CMD.EXE /C dir C:\......                                                     ║
║    │    │EXEC*N &&VER=!CMD.EXE /C VER                                                                 ║
║    │    │EXEC* &&DIRT=!CMD.EXE /C DIR /S T:\xxxxx 2>&1                                                ║
║    │    │EXEC* @Edit1=!ping 127.0.0.1                                                                 ║
║    │    │EXEC| =!ipconfig > ip.txt                                                                    ║
║    │    │EXEC| =*ipconfig | =%Myname%  TEAM READ --,**,V|| MESS. [%%V%%]  //ENVI^ EnviMode=1 first    ║
║    │    │EXEC|  !cmd /c dir  | !=gzip.exe -9 > dirs.gz                                                ║
║    │    │EXEC|*  &&V=!gzip.exe -d < dirs.gz                                                           ║
║    │    │PECMD.EXE EXEC /InstallService IdlePoweroff --nowait --delayservice 20000 --hide             ║
║    │    │                         --idle 1200000  shutdown -f -s -t 30                                ║
║    │    │EXEC* --exe:#100 &&V=cmd /c dir  //to call the embeded cmd.exe,directly executed in memory.  ║
║    │    │EXEC --clone:&MyStript   Params A  B  C                                                      ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │SHELL is also loaded by this command;                                                        ║
║    │    │In the waiting mode,%&&ERRORLEVEL% is the exit code of a program; %ERROR% %&&ERROR% share    ║
║    │    │the same value.                                                                              ║
║    │    │In the waiting mode,programs can be directly executed as a batch without EXEC,like NOTEPAD;  ║
║    │    │If there are no command word LOAD/EXEC but exist files with such extensions as WC?,IN? or    ║
║    │    │TX?,they will be executed by LOAD,otherwise by EXEC;                                         ║
║    │    │When a switch conflicts with a leading character,the last is valid.Between the leading       ║
║    │    │character and file name,a space can be added to break;                                       ║
║    │    │In the document mode,if params are demanded,the file names should be bracketed with ",or all ║
║    │    │of them will be treated as a single file name.                                               ║
║    │    │If there are spaces in the program path and the file path in the parameter, use "".          ║
║    │    │In the command line or batch script,! * --hide is generally ok without @,for @ is not        ║
║    │    │supported by all versions of Windows.                                                        ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │Detailed explanations to example 2 "EXEC* DIRT=!CMD.EXE /C DIR /S T:\xxxxx 2>&1":            ║
║    │    │1:"2>&1" are the special symbols for CMD.EXE,indicating merging the standard output of error ║
║    │    │(2) into the standard output(1). EXEC accepts the standard output by default,thus it accepts ║
║    │    │all the content.                                                                             ║
║    │    │Command:C:\>dir XYAXXX                                                                       ║
║    │    │The volume in drive C is WINDOWSXP                                                           ║
║    │    │with its serial number 28F0-182C                                                             ║
║    │    │Files are not found in the directoy of C:\                                                   ║
║    │    │//Here "Files are not found" is a standard output of error(without 2>&1,there will be no     ║
║    │    │such a line),while others are standard output.                                               ║
║    │    │EXEC*  --err   indicates accepting a standard output of error.                               ║
║    │    │2:1 indicates only intercepting the first line.                                              ║
║    │    │This is because some commands output too much,yet only the first line is needed.This helps   ║
║    │    │to terminate the program and return the outcome at once.                                     ║
║    │    │3:to accept other lines of output.Firstly transfer all to the variable &V,and then intercept ║
║    │    │the specified line from it.                                                                  ║
║    │    │1>  FORX  *NL &V,&line, ....                                                                 ║
║    │    │FORX automatically splits the output into lines and circulates every round.&line refers to   ║
║    │    │a line. //[HELP FORX]                                                                        ║
║    │    │2>  use READ   //[HELP  READ]                                                                ║
║    │    │READ  -,-1,&LINES,%&V%         //to read the number of lines.                                ║
║    │    │READ  -,0,&line,%&V%           //to read the last line.                                      ║
║    │    │READ  -,1,&line,%&V%           //to read the first line.                                     ║
║    │    │READ  -,2,&line,%&V%           //to read the second line.                                    ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'EXIT'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│EXIT [ScriptType]                                                                            ║
║    │    │EXIT= [ErrCode or PE_VarName or error] //to set ErrCode,0 by default,PE_VarName is its       ║
║    │    │address,error:to return the error code.                                                      ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To exit the subprocess called by the current command of CALL,the process of config file      ║
║    │    │called by LOAD or the loop command called by LOOP.                                           ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║EXIT│PARA│■ScriptType:indicated as [Num or CMD].If absent,it is automatically judged(_SUB,FILE,FORX,   ║
║    │    │  LOOP,BLOCK).                                                                               ║
║    │    │♦CMD:not case sensitive.FILE,WIN,_SUB,FORX or BREAK,LOOP or BREAK,- or BLOCK and CONTINUE    ║
║    │    │  respectively refer to the current file,current  window,current function,current FORX,      ║
║    │    │  current LOOP,jumping to the end of current block(before }) and jumping to the next round   ║
║    │    │  of LOOP/FORX. EXIT ToWin indicates terminating the execution of the function and return to ║
║    │    │  the control of window.[suggested]                                                          ║
║    │    │♦Num:taken from "1~4",referring to the current process,current file,current FORX,and         ║
║    │    │  current LOOP.[not suggested]                                                               ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│IFEX $%Val%=10,EXIT Loop or FIND $%Cancel%=YES,EXIT File!EXIT _Sub or EXIT 1                 ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼Example 1 shows that when Val is 10,the program exits the current loop; The error code is   ║
║    │    │  thread-independant.                                                                        ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'FBWF'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│FBWF [P Percent of free memory] [L Min] [H Max] [F SurplusVal]                               ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To set FBWF cache.                                                                           ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║FBWF│PARA│■The units for Max,Min and surplus value are all MB.                                         ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│FBWF P20 L32 H64                                                                             ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │The three params can be used separately.If FBWF L64 is used,64M of FBWF will be set by force ║
║    │    │ignorant of the size of the free memory.                                                     ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'FDIR'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│FDIR [--short[+]|--long[+]] [--full|--fullfile] [--volume] VarName=FileName                  ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To return the name of the directory containing the specified "FileName"(without "\" at end). ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■VarName:to store the directory name; --full refers to an absolute directory,ending with \   ║
║    │    │  indicates itself,--fullfile indicates full path of the file.                               ║
║FDIR│    │■FileName:a valid file name,-short/-long:to export a short/long file name(+if have).         ║
║    │    │  --volume:to export a file name with volume.   --1 add double quotes on spcae               ║
║    │    │  --part:to export \\?\\Harddisk#Partition#    --volumepart:--volume then --part             ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│FDIR fPath=C:\Windows\System32\calc.exe or FDIR aPath=%CurDir%\Path1\Path2\FileName          ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼If FileName is a relative path,the returned outcome is the working directory of PECMD.EXE   ║
║    │    │  or config file;                                                                            ║
║    │    │☼The outcome of example 1 is "C:\Windows\System32" and example 2 is"%CurDir%\Path1\Path2".   ║
║    │    │☼Supportive: \\?\GLOBALROOT\Device\Harddisk0\Partition1\A.TXT (Others are the same)          ║
║    │    │              \\?\Harddisk0Partition1\A.TXT   \\?\HarddiskVolume1\A.TXT  \\?\ImDisk0\A.TXT   ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'FDRV'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│FDRV <VarName><=>[FileDirName]                                                               ║
║    │    │FDRV <VarName>=   //return all drive letters of the system in the form of C:|D:|E:|F:|...    ║
║    │    │FDRV <VarName>=*: //return all drive letters of the system in the form of C: D: E: F: ...    ║
║    │    │FDRV <VarName>=*  //return all drive letters of the system in the form of C D E F ...        ║
║    │    │FDRV <VarName>=?  //return all MS-DOS device names of the system                             ║
║    │    │FDRV -link? Ret,AllName,LastName=SymName    //returns the linked object.                     ║
║    │    │FDRV -vol [VolName][,FSName][,IDName][,MaxLenVarName][,MarkVarName][,UUIDName]=DrvName //    ║
║    │    │  return the volume,etc.                                                                     ║
║    │    │//-ab:not to search for AB floppy; -rsort:in reverse; -idle:idle                             ║
║    │    │drive letters; -idlec:to exclude AB.                                                         ║
║    │    │FDRV -setvol DrvName=Vol    //set the volume.                                                ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To return the drive letter for the partition containing the specified "FileDirName"          ║
║    │    │(end with ":",without "\" at the end),or all drive letters of the system.                    ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■VarName:to store the drive letter for a partition;                                          ║
║FDRV│    │■FileDirName:valid file or directory name(can be absent.Refer to the explanation in REM for  ║
║    │    │  other implication of being absent.                                                         ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│FDRV fDrive=C:\a or FDRV Drvs= or FDRV -vol V=\\?\Harddisk0Partition2 or \\?\HarddiskVolume5 ║
║    │    │or\\?\ImDisk0\ or\\?\Volume{cc0ac7c9-27c4-11e5-ba3b-806e6f6e6963}\ or\\?\STORAGE#Volume#{cc0 ║
║    │    │ac7c0-27c4-11e5-ba3b-806e6f6e6963}#0000008481CD9800#{53f5630d-b6bf-11d0-94f2-00a0c91efb8b}\  ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼If FileName is a relative path,the returned outcome is the working directory of PECMD.EXE   ║
║    │    │  or config file;                                                                            ║
║    │    │☼If "FileDirName" is absent,all drive letters of the system will be returned in the form of  ║
║    │    │  C:|D:|E:|F:|...;                                                                           ║
║    │    │☼The outcome of example 1 is "C:" and example 2 is a list of all drive letters of the        ║
║    │    │  system(The list is not settled but changeable all the time).                               ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'FEXT'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│FEXT <VarName><=><FileName>                                                                  ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To return the extension of the specified file(without ".").                                  ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■VarName:to store the extension;                                                             ║
║FEXT│    │■FileName:a valid file name.                                                                 ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│FEXT fExt=C:\Windows\System32\calc.exe or FEXT aExt=X:\Path1\Path2\FileName                  ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼The outcome of example 1 is "exe",and example 2 is null;                                    ║
║    │    │☼The returned value of FDIR,FDRV and FEXT can be checked or compared by the command of FIND  ║
║    │    │☼Supportive: \\?\Harddisk0Partition2\A.TXT   \\?\HarddiskVolume5\A.TXT  \\?\ImDisk0\A.TXT    ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'FILE'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│FILE [-simpleprogress|-progress -force[q] -file -m -q] [-] FilePath[<operator>DestPath]      ║
║    │    │FILE FilePath>>NewName without parent directory  //to imitate the command of Ren in CMD,not  ║
║    │    │change the directory containing the file but change its name.                                ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To delete,copy,move or rename a file or directory.-m:multiple files,spaced by "; ",-:to end. ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │■-simpleprogress:to display progress bar,-progress:to display progress bar and file name,    ║
║    │    │  --file:to only operate a file,-force[q]:to delete by force(as possible)[itself first],     ║
║    │    │  -q:no warning(like IE temporary directory),-delme:to delete file or directory locked by    ║
║    │    │  itself.  -rd:rmdir  -su:super-right   -delay:delay                                         ║
║    │PARA│■FilePath:the name of the source file and directory.DOS wildcard "?" or "*" is applicable    ║
║    │    │  to deleting,copying and moving the file and directory;                                     ║
║    │    │■Operator: "->","=>",">>" refer to moving,copying,renaming the file and directory.           ║
║    │    │  Operators being absent indicates the operation of deleting. When renaming with ">>",be     ║
║    │    │  sure there are no DOS wildcards in FilePath and NewName.Moreover,there should be only one  ║
║FILE│    │  FilePath and NewName and NewName is sure not to have existed with its directory unchanged. ║
║    │    │  Actually,"->" is also capable of doing this and seems more powerful than this.             ║
║    │    │■DestPath:the destination path to move or copy the source file and directory to.It should    ║
║    │    │  be a definitive name of file and directory without any DOS wildcard.                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│FILE %SystemRoot%\INF\*.INF=>%TEMP% or FILE pphk->pphk22 or FILE -delme %CurDir%             ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼If the system is started with RAMDISK,some useless files (like NTOSKRNL.EXE of 2M)can be    ║
║    │    │  deleted after booting to add to the writeable space for RAMDISK;                           ║
║    │    │☼When moving and copying,if only a directory is specified,the specified directory will be    ║
║    │    │  copied or moved to the destination only,as is shown in example 2; When operating a file,no ║
║    │    │  operation will be performed if no specified directory exists in the specified destination, ║
║    │    │  as is shown in example 3.                                                                  ║
║    │    │☼The operation will be terminated if the specified destination directory or file does not    ║
║    │    │  exist,like "pphk" and "top.bmp" in example 2 and 3,if not exist;                           ║
║    │    │☼To move a folder to a new one,please refer to the example: FILE pphk=>pphk22                ║
║    │    │☼Except renaming,the source and the destination can be multiple,separated by "; ".           ║
║    │    │  If there are multiple destinations,the number of sources should be the same as that of     ║
║    │    │  destinations,ie,they should be operated correspondantly; The destination should be the     ║
║    │    │  name of itself instead of the directory containing it.                                     ║
║    │    │  eg:FILE --m x.log;x3.log=>FOLDER\x11.log;HELP\x33.log                                      ║
║    │    │☼-file Supportive: \\?\Harddisk0Partition2\A.B  \\?\HarddiskVolume5\A.B  \\?\ImDisk0\A.B     ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'FIND'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│FIND[|^#~+-;:][*c] [! ]<COND>,[COND1][! CMD2]   //Take notice of the space behind !, ^#~+-   ║
║    │    │  are the alternative delimiters of !. ;: replaces ,.                                        ║
║    │    │FIND{|^#~+-}{*c} {! }{$}[{! }<COND1> relational calculus {! }<COND2>  ..],{CMD1}{! CMD2}     ║
║    │    │  //combined conditions                                                                      ║
║    │    │FIND  QureyCOND=?,VarName                     //to query                                     ║
║    │    │FIND  [--user] --pid*@.[#ParPID|PID] VarName,PrgmName[|UsrNm] //query,* means matching the   ║
║    │    │  front part only,"." means matching the extension.                                          ║
║    │    │FIND [--sub][--forpid:PID|--fortid:TID] --wid*@[ParWinID] VarName,WinTitle//to query,* means ║
║    │    │  matching the front part only.                                                              ║
║    │    │FIND [--sub][--forpid:PID|--fortid:TID] --wid#ParWinID VarName,CtrlID //to query WinID of    ║
║    │    │  the control.                                                                               ║
║    │    │FIND --menu    VarName,WinID                  //to query MenuID of the window.               ║
║    │    │FIND --menu#0  VarName,MenuID                 //to query SubMenuID of the Menu.              ║
║    │    │FIND --menu#SN VarName,MenuID                 //to query information of SubMenu with the     ║
║    │    │  specified SN,SN>=1.                                                                        ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│If the conditional expression holds,command group1 will be executed; If not,command group2.  ║
║    │    │--sub:to recurse.^#~+- are delimiters.                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │▲!Notice:"!" before <COND> indicates conditional reverse.$ before [ indicates all behind     ║
║    │    │  being $ comparison and it can be absent; Relational operators are &|@(xor).                ║
║    │PARA│■COND:judgement to [MemSum],[AllDiskSpace],[MemProc] or [Key].                               ║
║    │    │☼MemSum    MEM<ComparisonOperator>Num.The unit is M,ceiling(in one method).                  ║
║    │    │☼MemSum    MEMB<ComparisonOperator>Num.The unit is Byte.                                     ║
║    │    │☼AllDiskSpace  R:\<ComparisonOperator>[*]Num,R:drive letter. (MB) *:Bytes                    ║
║    │    │☼Key       KEY<ComparisonOperator>[#]Num.                                                    ║
║FIND│    │☼Proc[|UsrName]   the name of a memory process(including *?).                                ║
║    │    │☼string comparison:*Left_PEVAR_Name<ComparisonOperator>Right_PEVAR_Name                      ║
║    │    │☼string comparison:$LeftPart<ComparisonOperator>RightPart,not case sensitive.The LeftPart    ║
║    │    │  and RightPart support variables.If an operator is contained in the LeftPart or RightPart,  ║
║    │    │  it is required to be transfered to a variable.                                             ║
║    │    │  For the convenience of being directly compared with an operator itself,the first character ║
║    │    │  after $ will not be treated as an operator but the LeftPart of the comparison.             ║
║    │    │☼number comparison: |LeftPart<ComparisonOperator>RightPart,the numbers can be signed floats  ║
║    │    │  # indicates integer comparison.                                                            ║
║    │    │☼operator:comparison operator "=","<>","<",">",">=" and "<=" respectively indicate being     ║
║    │    │  equal to,unequalto,less than,greater than,greater than or equal to,less than or equal to.  ║
║    │    │  The suffix *c indicates case sensitive.                                                    ║
║    │    │☼number:numbers to compare,the unit for disk is MB and the numberic value of the key is the  ║
║    │    │  code of it.GMKS can be present.                                                            ║
║    │    │☼command group: a command or commands to execute.Commands are separated by "|" and groups    ║
║    │    │  are separated by "!".                                                                      ║
║    │    │☼FIND|    Group mode,it indicates checking the character "|" in the params behind.Not to     ║
║    │    │  check by default to avoid error.                                                           ║
║    │    │☼query conditions: MEM=?  MEMB=? R:\=? KEY=?Num                                              ║
║    │    │☼--wid @ indicates all,one line for each. SN WinID CtrlID ParWinID ThreadID ProcID Type      ║
║    │    │  Title,separated by TAB.                                                                    ║
║    │    │☼--menu#SN: SN MenuID CtrlID TXT,separated by TAB.To return all if SN is null,in multiline.  ║
║    │    │☼--pid @ indicates a list,one line for each.PID PPID MemK CPUTime(100ns) TotalTime[ Usr]     ║
║    │    │  FileName CMDLine.CPUTime of process 0 refers to IdleTime of the system.Separated by TAB.   ║
║    │    │☼FIND --pid VarName   //to return: IdleTime TotalTime CPUNum ClkNum_For_OneSec               ║
║    │    │  100nsNum_For_OneClk                                                                        ║
║    │    │--[in]visible :Windows is [in]visible. --class:WinClassName                                  ║
║    │    │*var Use PEVAR_Name in COND                                                                  ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│FIND MEM<128,SHEL %SystemRoot%\SYSTEM32\XPLORER2.EXE!SHELL %SystemRoot%\EXPLORER.EXE         ║
║    │    │FIND $%m%=1,!!  find $%n%=1, mess aaa!mess bbb         //example of nesting.                 ║
║    │    │FIND COND1,!! FIND COND2,! FIND COND3,DoSth1! DoSth2   //nesting sentence pattern,can be     ║
║    │    │combined with IFEX.                                                                          ║
║    │    │FIND [ C:\ > 100 & $"A " <> "A" & explorer.exe ],DoSth1! DoSth2    //example of combination. ║
║    │    │FIND --pid*.123 V,or FIND --pid*@.123 V,               //to check PID 123.                   ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼This command is powerful but complicated and can be used in nesting(FIND or IFEX) to judge  ║
║    │    │  mutiple conditions.                                                                        ║
║    │    │☼If this command nests FIND or IFEX,"!" should be used to separate the command groups in     ║
║    │    │  the nested command so as to avoid confusion.                                               ║
║    │    │  "," being closely followed by !! indicates there being no ELSE part for the convenience of ║
║    │    │  nesting combination.                                                                       ║
║    │    │☼The command IFEX is similiar to FIND in function.                                           ║
║    │    │☼The key value can be A~Z,0~9,code 0xNN or numeric code with at least 2 digits.# can be      ║
║    │    │  absent.It is just for compatibility.With # indicates it should be in the code mode.        ║
║    │    │  VK_ sequence is applicable to the key,whose outcome is stored in the environment variable  ║
║    │    │  %PressKey%.                                                                                ║
║    │    │  The key makes sense only with =,which checks the specified key(not to check other keys,    ║
║    │    │  refer to WAIT).                                                                            ║
║    │    │  To compare with the separate = itself,= can be placed behind $.In some complex situations, ║
║    │    │  variables should be employed to store some special characters for their referencing.       ║
║    │    │☼--forpid:PID --fortid:to specify PID or ThreadID respectively that the command belongs to   ║
║    │    │☼combined conditions:[] are the marks,can be nested,but () are suggested.$ before [          ║
║    │    │  indicates all behind being $ comparison.Relational operators are |&@,separated by space.   ║
║    │    │☼Supportive: \\?\Harddisk0Partition2\   \\?\HarddiskVolume5\  \\?\ImDisk0\                   ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'FLNK'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│FLNK <DestPathName>,<SrcFilePathName>[,LinkTypeMark]                                         ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To establish a hard link or symbolic link of NTFS file system.                               ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■DestPathName:the name of file and directory to establish a hard link or symbolic link;      ║
║    │    │■SrcFileName:the path name of an existing file;                                              ║
║FLNK│    │■LinkTypeMark:Num,if absent,0 by default indicating establishing a hard link,while non-zero  ║
║    │    │  symbolic link.                                                                             ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│FLNK %WinDir%\System32\abcd.DLL,%CurDir%\abcd.DLL or FLNK %WinDir%\MyTool,%CurDir%\MyTool,1  ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼XP and 2003 OS do not support symbolic link or directory link,as well as trans-volume hard  ║
║    │    │  link;                                                                                      ║
║    │    │☼This command supports environment variable interpretation(example),as well as using         ║
║    │    │  wildcards;                                                                                 ║
║    │    │☼This command works by calling CreateHardLinkW of Kernel32.DLL or CreateSymbolicLinkW.       ║
║    │    │  Whether it succeeds or not has nothing to do with the system.                              ║
║    │    │☼-j or Type 2 indicates directory link.If SrcFilePathName is null,the link will be deleted.  ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'FONT'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│FONT [-] <FontPath>[,StartPart]                                                              ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To (un)register fonts or add on fonts                                                        ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║FONT│PARA│■FontFilePath and StartPart                                                                  ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│FONT %CurDrv%\OutPart\FONT or FONT \WINDOWS or FONT \WINDOWS,C:                              ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼If the first character of the command is "\",it will search all the partitions starting     ║
║    │    │  from the specified starting partition for the fonts in Windows\Fonts,install and get them  ║
║    │    │  registered.Defining a starting partion helps to avoid searching the floppy in the computer ║
║    │    │  If the starting partition is absent,the command will search all the partitions (including  ║
║    │    │  the floppy).                                                                               ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'FORM'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│FORM [-raw] [-x] <[VarName][,BUSNAME]>=<*|[\\.\]VolName|DeviceName>                          ║
║    │    │FORM <-free|-userfree|-userall>  VarName=<VolName|Dir>                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To return the media type of a specified drive.☼-raw:not to distinguish USB(to avoid floppy)  ║
║    │    │-x:floppy can be distinguished in details(2=1.44M).                                          ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■VarName:to store the media type of a partition with a specified drive letter.BUSNAME        ║
║    │    │  stores the bus type to make up for the insufficient information of the media type.         ║
║    │    │■VolName:a valid drive letter or name of file and directory existing in the system.          ║
║    │    │  * indicates returning the list of drive letters.                                           ║
║    │    │■DeviceName: \\.\PhysicalDrive0,etc:to return the media type and bus type.                   ║
║    │    │■-free:all free space(byte),-userfree:free space available for current user,-userall:all     ║
║    │    │  space for the current user.                                                                ║
║FORM├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│FORM DriveType=F: or FORM DriveType=C:\Windows or FORM DriveType=%CurDir%                    ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼VolName can reference environment variables,like example 3;                                 ║
║    │    │☼The returned value of the command can be the following strings:DRIVE_UNKNOWN,               ║
║    │    │  DRIVE_NO_ROOT_DIR,DRIVE_REMOVABLE,DRIVE_FIXED,FUNCTION_ERROR,DRIVE_REMOTE,DRIVE_CDROM,     ║
║    │    │  DRIVE_CDROMUSB,DRIVE_RAMDISK,DRIVE_USBFLASH,DRIVE_USBDISK or numbers(others).              ║
║    │    │☼This command,coordinating with FDRV,is capable of listing the media types of all drives in  ║
║    │    │  the system.                                                                 Refer to FDRV. ║
║    │    │  bus type BusTypeUnknown=0,BusTypeScsi=1,BusTypeAtapi,BusTypeAta,BusType1394,BusTypeSsa,    ║
║    │    │  BusTypeFibre,BusTypeUsb,BusTypeRAID,BusTypeiScsi,BusTypeSas,BusTypeSata,BusTypeSd,         ║
║    │    │  BusTypeMmc,BusTypeVirtual,BusTypeFileBackedVirtual,BusTypeSpaces,BusTypeNvme,BusTypeSCM,   ║
║    │    │  BusTypeUfs,BusTypeMax,BusTypeMaxReserved=0x7F ,<0 error                                    ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'FORX'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│FORX[;:] [*ab] [*cur] [/S[:SubDirLvlNum]] [/O:N] [/O:-N] [/size[*]:Min:Max:Align] [@|$][[!]\]║
║    │    │     File,Var,[MaxTimes],CMD_and_Param                                                       ║
║    │    │FORX[;:] *[v|L] VarList[Name],<Var>,<CMD> [ParamList[Name]] /*v VarName //*L Start Step End  ║
║    │    │FORX[;:] *NL[:Separator] PE_VarName with lines of its content,<Var>,<CMD> [ParamList]        ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To operate the matched file and directory with corresponding command.Its function is similar ║
║    │    │to the command of FOR in CMD.EXE.                                                            ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│  *ab:to exclude AB removable disks;  /S:to search the subdirectory;  /O:N to sort by name;  ║
║    │    │  /O:-N to sort in the inverted sequence.*cur:to give priority to the current drive letter.  ║
║    │    │  *qu[~] surport "   *off to return var_part   *bf Breadth first  ;: replaces ,.             ║
║    │    │■File:to specify the file and directory,wildcards applicable.                                ║
║    │    │■Var:to specify the name of a variable to refer to the file found.The name of the variable   ║
║    │    │  cannot be duplicated and the variable can be referenced in many places in the param list.  ║
║    │    │■MaxTimes:to operate the matched file and directory for the maximum number of times.         ║
║    │    │  <=0 indicates operating all the existing files.                                            ║
║    │    │■CMD:a valid command of PECMD.The format and number of its params are determined by command. ║
║    │    │■PE_VarName with lines of its content:to store lines of content in the variable.Notice       ║
║    │    │  that there is no % if it is only a variable name.One line of its content is returned each  ║
║    │    │  time and it should be PE variable name only.                                               ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║FORX│EXMP│♦FORX %CurDir%\Path1\*.DLL,AnyDLL,0,CALL $%AnyDLL%                                           ║
║    │    │♦FORX \auto*.INF,AutoRunVirus,0,FILE %AutoRunVirus%                                          ║
║    │    │♦FORX !\Tools\Tools.INI,MyIni,1,LOAD %MyIni%                                                 ║
║    │    │♦FORX /S /O:-N C:\windows\*.INI,f,0,MESS %f% @#OK                                            ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼This command can find the file and directory with attributes,like the ones with hidden      ║
║    │    │  attributes.                                                                                ║
║    │    │☼"\" indicates searching all partitions."!" indicates searching all partitions in the        ║
║    │    │  inverted sequence.                                                                         ║
║    │    │☼"@" indicates searching only the directory."$" indicates searching file and directory,and   ║
║    │    │  file only if absent.                                                                       ║
║    │    │☼"*" indicates being in the mode of variable list,separated by null characters.              ║
║    │    │☼Example 1 indicates registering all the DLLs in %CurDir%\Path1\.                            ║
║    │    │☼Example 2 indicates deleting all the auto*.INF in the root directory of all partitions.     ║
║    │    │☼Example 3 indicates searching all partitions in the inverted sequence for Tools.INI in the  ║
║    │    │  directory of Tools and loading the first sought Tool.INF with the command of LOAD.         ║
║    │    │☼If CMD and param are absent,the variable will return the number of files and directories    ║
║    │    │  found or the maximum number of times the command is executed.If CMD is *,return list.      ║
║    │    │☼Supportive: \\?\Harddisk0Partition2\*.*   \\?\HarddiskVolume5\*.*   \\?\ImDisk0\*.*         ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'GETF'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│GETF[#] [-err:errcode] [-g=ColNum[@SpacedStr]] FileName,PosLen,VarName                       ║
║    │    │GETF -find LargeFileName,[LargePos[#LargeLen[#SubLen[#SubOffset[#BlkSZ[#OffsetInBlk]]]]]],   ║
║    │    │    [*[<times>]]VarName,DestFile|*DestVarName            //to search in binary *:list        ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To read the data of a specified file in BINARY and assign it to a specified variable.        ║
║    │    │The suffix # indicates reading the binary PE object.                                         ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■-g=ColNum:to automatically insert a line break in the position after a certain number of    ║
║    │    │  columns.   -fd=<HNNDLE|?NameHandle>: accelerate -free=HANDLE:free                          ║
║    │    │■FileName:a valid name of file,supporting interpreting environment variables; It can be a    ║
║    │    │  physical drive like \\.\PhysicalDrive0,a logical drive like C: and a partition device like ║
║    │    │  \Device\Harddisk0\Partition1; It can also be #[.]InternalSrcID[|Dir],.indicates raw data.  ║
║    │    │  The directory for special source can be indicated as #Num. -bin or begin with &:PEVAR      ║
║    │    │■PosLen:number,consisting of the starting position and the length (byte) to read,separated   ║
║    │    │  by "#",like 1023#32; The suffix TGMKS can be present.K=1024,S=512.Length being * indicates ║
║    │    │  reading to the end of the file.                                                            ║
║    │    │■VarName:string,to store the outcome of reading.                                             ║
║    │    │■-find:indicates the starting position of a binary search target in a large file.LargePos    ║
║    │    │  refers to the start,LargeLen indicates the limit and SubLen indicates the target length    ║
║    │    │  limit.If LargePos,LargeLen,SubLen and SubOffset are absent or <=0,they will be ignored;    ║
║    │    │  BlkSZ is 512 by default.LargePos%BlkSZ can be used as the OffsetInBlk.                     ║
║GETF├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│GETF %CurDir%\Memu.LST,0x400#0x10,FileData or GETF %CurDir%\Memu.LST,-1,FileLength           ║
║    │    │GETF -bin &Src,2#4%,Dst or GETF#  %CurDir%\Memu.LST,0x400#0x10,&DataBin                      ║
║    │    │TEAM ENVI$# &DATA=33 33 | GETF -find A.ISO,0#1M#2##512,&POS,*&DATA //512Bytes-group find     ║
║    │    │TEAM ENVI$# &DATA=33 33 | GETF -find A.ISO,0#1M#2##1,&POS,*&DATA   //1Byte-group find        ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼The starting position that GETF reads is relative to the starting address of the file.To    ║
║    │    │  read the first byte of the file,the starting position shoulb be 0x00;                      ║
║    │    │☼The outcome of the command is indicated with hex numbers,separated by space between them.   ║
║    │    │  If the starting position or length is absent,both will be set as 1 by default;             ║
║    │    │☼The corresponding command to modify files in BINARY is PUTF.It is not suggested treating    ║
║    │    │  super large files with the commands of GETF and PUTF;                                      ║
║    │    │☼If the starting position is <0 or exceeds the length of the file,the outcome of the         ║
║    │    │  command will be the length of the file indicated in decimal and the error outcome will be  ║
║    │    │  0xFFFFFFFF by default;                                                                     ║
║    │    │☼Besides,the commands to read or modify files in string are the commands of READ and WRIT.   ║
║    │    │  For large mounts of data(7K),PE variables should be employed;                              ║
║    │    │☼Data format:Numbers are spaced,like 0x23 0xAD 0x1C 0x80.                                    ║
║    │    │☼-find:BlkSZ refers to the aligned size,512 by default.If it is set as 1,the command will    ║
║    │    │  search all the content in the way of byte alignment. Times<0 is reverse.                   ║
║    │    │☼The resource can be written as "[FileName]""#SrcName[|DirName]",and the pair of "" behind   ║
║    │    │  can be absent.The SrcName can be non-figure characters at this time.                       ║
║    │    │☼To support UD files: ud:UD FileName:UD InternalFileName                                     ║
║    │    │☼Supportive: \\?\Harddisk0Partition2\A.TXT   \\?\HarddiskVolume5\A.TXT  \\?\ImDisk0\A.TXT    ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'GROU'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │RORM│GROU [-right] [-center] [*] <Name>,<Shape>,Title,[Status][,FrontColor#BackColor][,Font]      ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To create a combined panel in the window defined by _SUB and illustrate the functions of     ║
║    │    │the controls in it.                                                                          ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│  * before <ComPanelName> indicates being automatically recycled when quitting the block or  ║
║    │    │  function.                                                                                  ║
║    │    │■ComPanelName:string,should be unique and not the same as those of other controls or         ║
║    │    │  environment varialbes.                                                                     ║
║    │    │■ComPanelShape:the position and size of the combined panel.The format is <L(left)T(top)      ║
║    │    │  W(wide)H(high)>.L,T,W and H are respectively followed by corresponding numbers.            ║
║GROU│    │■ComPanelTitle:string,to describe the functions of the combined panel.                       ║
║    │    │■ComPanelStatus: ±16:invisible   Font:see EDIT                                               ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│GROU Group1,L8T4W336H400,to register WimShExt.DLL                                            ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │☼This command is generally located between _SUB and _END.           Refer to _SUB and CALL.  ║
║    │REM │☼To set the title of the combined panel,use "ENVI @ComPanelName=ComPanelTitle".Refer to      ║
║    │    │  ENVI.                                                                                      ║
║    │    │☼Use "ENVI @ComPanelName.Visible=Num" to set its visibility.0:invisible,not 0:visible        ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'HASH'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│HASH [FileName|$StrContent|*PEVarName],[VarName],[ChkType]                                   ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To calculate CRC32,MD5,SHA1 or SHA256 check codes of a file or string.                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■FileName:the full name of the file whose Hash check code to be calculated,containing its    ║
║    │    │  path,supporting interpreting environment variables;                                        ║
║    │    │■StrContent:string,Chinese characters can be contained,case sensitive.Either "FileName" or   ║
║    │    │  "StrContent" is present;                                                                   ║
║    │    │■The leading character $:a symbol for string; If FileName/StrContent contains ",",the two    ║
║    │    │  "," behind cannot be absent.The string is in ASCII code.                                   ║
║HASH│    │■PEVarName:to directly calculate its hash without creating a temporary file.If PEVarName     ║
║    │    │  contains &,* can be absent.                                                                ║
║    │    │■VarName:to store the outcome of calculation in string.                                      ║
║    │    │■ChkType:string,"CRC32","MD5","SHA1","SHA256" or "MD5" by default.                           ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│HASH %SystemRoot%\System32\UserInit.EXE,md5UserInit or HASH $mdyblog.blog.163.com,hPSW,SHA1  ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼When using HASH to calculate the HASH check code of a string,its size is unlimited.         ║
║    │    │☼When an error arises in reading a file,its MD5,SHA1 and CRC32 are all null; The CRC32 of a  ║
║    │    │  null string is "00000000",MD5 is "d41d8cd98f00b204e9800998ecf8427e",and SHA1 is            ║
║    │    │  "da39a3ee5e6b4b0d3255bfef95601890afd80709".                                                ║
║    │    │☼VarName given,the outcome of the calculation with HASH will be stored in a specified        ║
║    │    │  variable.In example 2,VarName can be referenced by the environment variable %PSWh%.        ║
║    │    │☼If VarName is absent,the outcome of the calculation with HASH will be displayed in a        ║
║    │    │  message window and stored in the clipboard.                                                ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'HELP'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│HELP [-hlpdoc=HelpPage] [*[CMDLineH]] [[~]DirBkMark] [TxtForeColor][#TxtBkColor]             ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To display the information of help.With *,CMDLineH is <=-100000 or null,and no command line. ║
║    │    │If CMDLineH is >=100000,there will be no help window.                                        ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║HELP│PARA│■DirBkMark:the directory entry to directly display(the first few characters); ~ indicates    ║
║    │    │  being forced to search for the text instead of bookmark.Being followed by . indicates that ║
║    │    │  the current line is just displayed as the top line. * indicates a line break.              ║
║    │    │■Num:(Hex supported)                                                                         ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│HELP 0x00EEFF#0xFF0000  or  HELP KeyVal or HELP  ~example│EDIT.                              ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼Directly executing this command will also display the information of help without using     ║
║    │    │  command line params.                                                                       ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'HIDE'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│HIDE                                                                                         ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To hide the process of PECMD.EXE.                                                            ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■No params.                                                                                  ║
║HIDE├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│HIDE                                                                                         ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼This command is designed to hide the process of PECMD.EXE in case it is mistakenly or       ║
║    │    │  artificially killed by other programs.                                                     ║
║    │    │☼It is not applicable to the command line,but to config file only.                           ║
║    │    │☼The command of SHEL should be used behind HOTK and HIDE.                                    ║
║    │    │☼Only after SHELL is loaded by the command of SHEL is HIDE able to hide the process of       ║
║    │    │  PECMD.EXE.                                                                                 ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'HIVE'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│HIVE [-u] [-super[_r]] [-quick] [*] <SubKeyName>,[FileName]                                  ║
║    │    │HIVE -f [-r] FileName,[UserName]   //get rights -r:tree                                      ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To load or unload registry config file,euqual to the functions of LOAD and UNLOAD of REG.EXE ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■-super_r:to set the authority of child keys by force. -quick:not add authority(default);    ║
║    │    │  -u:to load to HKEY_UESRS.                                                                  ║
║HIVE│    │■SubKeyName:the subkey name in HKEY_LOCAL_MACHINE when loading or unloading the specified    ║
║    │    │  registry config file.* indicates being exported to a file.                                 ║
║    │    │■FileName:the name of the registry config file to load.If absent,the command will unload     ║
║    │    │  the subkey with the specified SubKeyName.                                                  ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│HIVE PE,F:\BOOT\PE or HIVE PE or HIVE PE,%CurDrv%\BOOT\PE                                    ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼After HIVE loads the registry config unit,PECMD will set the account Everyone as            ║
║    │    │  acquiring permissions of full control so that users have the privilege to read and modify. ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'HKEY'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│HKEY[$*]  [ModKey+]<KeyLetter|#VKCode>,<HKCMD>                                               ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To set a hotkey of window or program level and associate a command with it.                  ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│☼"$" indicates hotkeys of program level(default).A hotkey cannot be associated with the      ║
║    │    │  same command as the one of another hotkey.* is of window level and the hotkey can be       ║
║    │    │  reassociated in different windows with unlimited commands.                                 ║
║    │    │■ModKey+:4 modifier keys (Alt,Ctrl,Shift and Win)can be indicated as a string,connected      ║
║    │    │  with "+".                                                                                  ║
║    │    │■KeyLetter:Simple keys("a"~"z" or "0"~"9") can be indicated directly."A"~"Z" is              ║
║    │    │  indicated together with SHIFT.It is allowed to directly use VK_Name(VK_can be absent) or   ║
║    │    │  the alternative string in the appendix,hex numbers supported.                              ║
║    │    │■Keycode:consisting of "#" and the VKcode behind,see example 1 and example 2,hex number      ║
║    │    │  supported.                                                                                 ║
║HKEY│    │■HKCMD:a valid command supported by PECMD.                                                   ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│HKEY #255,SHUT R or HKEY Ctrl+Alt+#0x41,DISP W800H600B16F75 or HKEY Ctrl+Alt+D,TEMP @Delete  ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼This command can be located beyond _SUB and _END(with $) to achieve certain functions.      ║
║    │    │  Refer to _SUB and CALL.                                                                    ║
║    │    │☼Example 1 indicates calling SHUT to reboot after pressing the power button;                 ║
║    │    │  Example 2 indicates calling DISP to set the display mode after pressing Ctrl+Alt+A;        ║
║    │    │☼Example 3 indicates calling TEMP to clear temporary directory after pressing Ctrl+Alt+D.    ║
║    │    │  Notice that the set hotkeys can not conflict with the ones of other programs.              ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'HOME'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│HOME [IEHomePage],[Num1],[Num2]                                                              ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To set and lock the IE homepage and disable the registry editor.                             ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■IEHomePage:support all kinds of websites and local webpage files,like"http:\\www.mssb.com"  ║
║    │    │  If it is a local webpage file,a full name of the file is demanded(environment variable can ║
║    │    │  be contained),like "%SystemRoot%\ReadME.htm".                                              ║
║HOME│    │■Num1:If not 0,the IE homepage will be locked,ie,no modification to it.If absent,it is 0 by  ║
║    │    │  default,ie,modification is permitted.                                                      ║
║    │    │■Num2:If not 0,the registry editor will be disabled.If absent,it is 0 by default,ie,enabled  ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│HOME http:\\www.sbms.com,1,1 or HOME %SystemRoot%\ReadME.htm                                 ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼This command can be used in a script and command line; If teh IE homepage or registry       ║
║    │    │  editor is locked by some evil tools,it can be employed to unlock.                          ║
║    │    │☼Example 1 indicates setting "http://www.sbms.com" as the homepage and disabling modifying   ║
║    │    │  it in the meanwhile,as well as forbidding the use of the registry editor.                  ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'HOTK'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│HOTK [--delall] [?[.]RetVarName] [ModKey+]<KeyLetter|#VKCode>[,HKCmd]                        ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To set a hotkey of system level and associate a command with it.(.EXE or .CMD or .BAT),      ║
║    │    │supporting the internal commands of PECMD.                                                   ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│☼ModKey+: 4 modifier keys (Alt,Ctrl,Shift and Win)can be indicated as a string,connected     ║
║    │    │  with "+".                                                                                  ║
║    │    │■KeyLetter:Simple keys("a"~"z" or "0"~"9") can be indicated as letters directly,"A"~"Z"      ║
║    │    │  is indicated together with SHIFT,while other keys should be indicated with "#" followed by ║
║    │    │  VKcode.It is allowed to directly use VK_Name(VK_can be absent) or the alternative string   ║
║    │    │  in the appendix,hex numbers supported.                                                     ║
║    │    │■Keycode:consisting of "#" and the VKcode behind,see example 1 and example 2,hex number      ║
║    │    │  supported.                                                                                 ║
║    │    │■HKCMD:a valid command supported by PECMD. --del:to delete.                                  ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║HOTK│EXMP│HOTK #255,EXEC PECMD.EXE SHUT or HOTK Ctrl + Alt + #36,EXEC PECMD.EXE or HOTK ?V #255        ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼Example 1 indicates calling SHUT to shut down the computer after pressing the power button  ║
║    │    │☼This command cannot be used in the command line but in config file only.                    ║
║    │    │☼It is suggested abandoning PELOGON.The hotkeys are unlimited.                               ║
║    │    │☼The outcome of hotkeys registration is stored in "HKEY_LOCAL_MACHINE\SOFTWARE\PELOGON".     ║
║    │    │☼The command of SHEL should be located behind HOTK and HIDE so that the process of           ║
║    │    │  explorer.exe comes into being and HOTK takes effect,or just kill the current process of    ║
║    │    │  explorer.exe so that it reruns automatically and thus HOTK takes effect.For the lastest    ║
║    │    │  version of PECMD,however,HOTK takes effect in real time and is ready for use at any time.  ║
║    │    │☼Generally,only after loading SHELL with SHEL can hotkeys be registered by HOTK.             ║
║    │    │☼1:For the present version of PECMD,it is also applicable to a normal OS;                    ║
║    │    │  2:It takes effect immediately.                                                             ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'IFEX'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│IFEX[|][^#~+-;:][*ab] [! ]<COND>,[CMD1][! CMD2]      //Take notice of the space behind !     ║
║    │    │      //*ab to exclude removable disks AB                                                    ║
║    │    │IFEX{|}[^#~+-]{*ab} {! }{$}[{! }<COND1> relational calculus {! }<COND2> ..],{CMD1}{! CMD2}   ║
║    │    │      //combined conditions                                                                  ║
║    │    │IFEX  QureyCOND=?,VarName      //to query                                                    ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│If the conditional expression holds,command group1 will be executed; If not,command group2.  ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │▲!Notice:"!" before <COND> indicates conditional reverse.^#~+- are the alternative           ║
║    │    │  delimiters of !.  ;: replaces ,.                                                           ║
║    │PARA│☼COND:judgement to [MEMU],[DiskSpaceU],[FileDir] or [Key].                                   ║
║    │    │☼MEMU:MEM<ComparisonOperator>Num.The unit is M,ceiling(in one method).MEMU:usable memory;    ║
║    │    │  MEMA:all memory.                                                                           ║
║    │    │☼MEMU:MEMB<ComparisonOperator>Num.The unit is Byte.MEMBU:usable memory; MEMBA:all memory.    ║
║    │    │☼DiskSpaceU: R:\<ComparisonOperator>[*]Num,R:drive letter. (MB) *:Bytes                      ║
║    │    │☼Key:KEY<ComparisonOperator>Num.                                                             ║
║    │    │☼FileDir:the name of file and directory,wildcards are permitted.If ended with\,it should be  ║
║    │    │  a directory.                                                                               ║
║    │    │☼number comparison:$LeftPart<ComparisonOperator>RightPart,the numbers can be signed floats.  ║
║    │    │  # indicates integer comparison.                                                            ║
║    │    │☼string comparison:|LeftPart<CompOperator>RightPart                                          ║
║    │    │  or 'LeftPart'<CompOperator>'RightPart'or *LeftName<CompOperator>RightName.                 ║
║IFEX│    │☼comparison operator:comparison operator "<",">","=",">=","<=","<>","&","|","@"              ║
║    │    │  respectively indicate being less than,greater than,equal to,greater than or equal to,less  ║
║    │    │  than or equal to,unqual to,and,or,xor.&|@ are only applicable to combined conditions with  ║
║    │    │  spaces at its front and back.                                                              ║
║    │    │☼number:numbers to compare,integer and float are supported.The unit for the disk is MB and   ║
║    │    │  the key value is the key code.GMKS can be present.                                         ║
║    │    │☼CMD:a command or commands to execute.Commands are separated by "|" and groups are           ║
║    │    │  separated by "!".                                                                          ║
║    │    │☼IFEX|:group mode,it indicates checking the character "|" in the params behind.              ║
║    │    │  Not to check by default to avoid errors.                                                   ║
║    │    │☼query conditions: MEM[UA]=?  MEMB[UA]=? R:\=? KEY=?Num                                      ║
║    │    │''indicates string comparison.[:eFileName] indicates checking the file name;                 ║
║    │    │  [:pPrgmName] checking the process.                                                         ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│IFEX KEY=17,TEAM TEXT Searching system fonts…| FONT \WINDOWS!TEXT Installing add-on fonts    ║
║    │    │IFEX COND1,!! IFEX COND2,! IFEX COND3, DoSth1! DoSth2    //the nesting sentence pattern,can  ║
║    │    │be combined with FIND.                                                                       ║
║    │    │IFEX [ COND1 & ! COND2 & "a   b.txt" ], DoSth1! DoSth2   //example of combination.           ║
║    │    │IFEX [ $2 < 12 & C:\>10 & C:\ > 10 & ( C:\boot.ini ) & MEM > 100 ], MESS YES //example of    ║
║    │    │combination.                                                                                 ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼This command is powerful but complicated and can be used in nesting(IFEX or FIND) to judge  ║
║    │    │  mutiple conditions.&|@ are relation operators.                                             ║
║    │    │☼If this command nests FIND or IFEX,"!" should be used to separate the command groups in     ║
║    │    │  the nested command so as to avoid confusion.                                               ║
║    │    │  "," being closely followed by !! indicates there being no ELSE part for the convenience of ║
║    │    │  nesting combination.The type before [ indicates all inside [] being of this type by        ║
║    │    │  default(Separate specification of type is also permitted inside).                          ║
║    │    │☼The command FIND is similiar to IFEX in function.                                           ║
║    │    │☼If this command is used in the variable judgement,all variables will be treated as the      ║
║    │    │  type of double.                                                                            ║
║    │    │☼combined conditions:[] are their symbols,and () can be nested.S| before[ indicate all       ║
║    │    │  behind being $| comparison.S| can be absent.|&@ are relation operators.There should be a   ║
║    │    │  space after the inner-condition.                                                           ║
║    │    │☼IFEX X: //to check if there exists the drive letter X only,likely a junk letter,though.     ║
║    │    │  (ie,though IFEX X:returns true,it will not exclude a junk letter),compatible with the      ║
║    │    │  virtual disk.IF IFEX X:\ returns true,it is certain that there is a file system in the     ║
║    │    │  drive,otherwise,there is no file system.                                                   ║
║    │    │☼Supportive: \\?\Harddisk0Partition2\   \\?\HarddiskVolume5\  \\?\ImDisk0\                   ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'IMAG'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│IMAG [-gui|-size|-real|-sel|-bupdate] [*] <Name>,[Shape],[Res],[CMD],[Color],[LinWd]         ║
║    │    │IMAG <-numicong|-numicon|-numbmp|-num:Type> VarName,,Resource  // to return the numbers of   ║
║    │    │icong,icon,bmp etc.and MaxRsrcID.Icong indicates icon group.                                 ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To create a PicBox in the window defined by _SUB. -smooth:smooth  -tab:TAB-SWITCH            ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│  * before <PicBoxName> incicates being automatically recycled before qutting the block or   ║
║    │    │  function.-bupdate:to force to be in the mode of viewing picture files.                     ║
║    │    │■PicBoxName:string,should be unique and not the same as those of other controls or           ║
║    │    │  environment variables.                                                                     ║
║    │    │■PicShape:position and size of the picture box.The format is <L(left)T(top)W(wide)H(high)>,  ║
║    │    │  L,T,W and H are respectively followed by corresponding numbers.                            ║
║    │    │■ImgResrc:the image file as: "[FileName]""#RescName[|DirName[|RealType*DisplayTpye]]"        ║
║    │    │■CMD:valid commands of PECMD,like EXEC !%CurDir%\XXX.CMD or EXEC %CurDir%\Setup.EXE.         ║
║    │    │■FrameColor:number,consisting of the normal color and active color respectively.Two numbers  ║
║    │    │  are separated by "#",like "Num1 #Num2",hex supported,like 0x00FFFF#0xFF0000.If absent,it   ║
║    │    │  is the system default color.                                                               ║
║IMAG│    │■FrameLineW:number,indicates the size in pixel of the picture box.If "CMD" is absent or      ║
║    │    │  invalid,the active color of the frame will be invalid.-16:invisible.                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│IMAG Image1,L8T380W140H70,%CurDir%\logo.gif,EXEC %CurDir%\Setup.EXE,#0xFF00FF,2              ║
║    │    │ENVI @Image1.update=32:32:100:50::;shell32.dll#52 //change the icon. or IMAG -gui -real -sel ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼This command is generally located between _SUB and _END.           Refer to _SUB and CALL.  ║
║    │    │☼As PECMD.EXE is a script interpreter,it is not suggested loading picture files of large     ║
║    │    │  size,or they will be displayed very slowly.Supportive of  BMP,BMP compressed in RLE,JPG,   ║
║    │    │  GIF(pictures),AVI animation and so on.(Others depend on how many graphics drivers are      ║
║    │    │  installed in WINDOWS)                                                                      ║
║    │    │☼"ImgResrc" supports displaying GIF animations in the format of standard GIF89a/87a.At this  ║
║    │    │  time,the settings for FrameColor and FrameLineW will be invalid.                           ║
║    │    │☼"ImgResrc" also supports resource icons in EXE or DLL with the format as <FileName#ID|Dir>  ║
║    │    │  Refer to ITEM.                                                                             ║
║    │    │☼If "CMD" not absent,the mouse will become a hand-shaped one when it moves to the picture    ║
║    │    │  box. AVI animation is supported.                                                           ║
║    │    │☼Use "ENVI @CtrlName.Visible=Num" to set its visibility; 0:invisible,not 0:visible.          ║
║    │    │☼Use "ENVI @CtrlName.update=w:h[:x:y:FramColor:FramLineW][;[*][?|][<X:Y:W;H>]ResFileName]"   ║
║    │    │  to update, incapable of changing the type. *:rebuild (change type) ?:show on exist         ║
║    │    │  Place <X:Y:W;H> just before ResFileName (INCL.<>), for part of it                          ║
║    │    │☼Use "ENVI @CtrlName.*del=" to delete,applicable to other controls. |:advance Image          ║
║    │    │☼Use "ENVI @CtrlName.stat=VarName" to check whether the control is valid.                    ║
║    │    │☼Use "ENVI @CtrlName.delay=ms_to_delay" to set the time to delay for the intervals in a GIF  ║
║    │    │☼Use "ENVI @CtrlName.ID=?[WinIDVarName][;CtrlIDVarName][;Pic_ID_Name]" to query              ║
║    │    │  animation.                                                                                 ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'IMPORT'                                                                                     ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│IMPORT FileName                                                                              ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║ I  │FUNC│To directly import another module of source file,making up a large file in logic.            ║
║ M  ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║ P  │PARA│■FileName                                                                                    ║
║ O  ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║ R  │EXMP│IMPORT  TrainModule.wcs                                                                      ║
║ T  ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼It can be nested with the function of anti-loop inside.                                     ║
║    │    │☼It is placed at the head of a file and import codes mechanically before they are executed.  ║
║    │    │  It should be a unique command in a separate line.It is not influenced by FIND/IFEX/_SUB.   ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'INIT'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│INIT [OptionList][,TimeWait][,USBStartDrvLetter]                                             ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To carry out the basic initialization,register windows shell,initialize users directory and  ║
║    │    │environment variables,install keyboard hook and create following directories:                ║
║    │    │Favorites                                                                    Programs        ║
║    │    │Desktop                                                                      SendTo          ║
║    │    │StartMenu                                                                    Personal        ║
║    │    │Startup                                                                      QuickLaunch     ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■OptionList:4 options supported,consisting of "C","I","K" and "U",which can be used in       ║
║    │    │  indefinite items,regardless of their sequence.                                             ║
║    │    │  Ѻ"C":to store the drive letter for CDROM in an environment variable;                       ║
║    │    │  Ѻ"I":to install some functions of PECMD to the menu of tray icon;                          ║
║    │    │  Ѻ"K":to install low-level keyboard hook when executing INIT,otherwise, only after loading  ║
║    │    │    SHELL will it be installed;                                                              ║
║INIT│    │  Ѻ"U":to check the insertion of USB removable hard disk,assign drive letters automatically  ║
║    │    │    and offer the function of plug-and-play of it.                                           ║
║    │    │■TimeWait:number,indicates the time to wait(ms) from the insertion of the removable hard     ║
║    │    │  disk to its being ready.If the number is too small,the assignment of drive letter is       ║
║    │    │  likely to fail.                                                                            ║
║    │    │■USBStartDrvLetter:the starting drive letter for USB devices,U by default.                   ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│INIT or INIT C or INIT CU or INIT CIK or INIT CIKU or INIT IU,3000                           ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼After INIT is executed and the specified SHELL is loaded by SHEL,a minimized WinPE can be   ║
║    │    │  launched immediately.                                                                      ║
║    │    │☼To ensure that there is sufficient space available in the partition containing              ║
║    │    │  %USERPROFILE%,or INIT will not fulfill its task.                                           ║
║    │    │☼With the option "C",the drive letter for CDROM will be stored in an environment varialbe    ║
║    │    │  beginning with CDROM(It takes effect only after refreshing with the command of ENVI        ║
║    │    │  without any param).                                                                        ║
║    │    │☼With the option "I",an icon menu,integrated with some commonly used functions,will appear   ║
║    │    │  in the tray.The custom personnel of WinPE can modify these functions of the menu.          ║
║    │    │☼With the option "K",it indicates installing the keyboard hook immediately to take over      ║
║    │    │  Ctrl+Alt+Del to summon the task manager.                                                   ║
║    │    │☼With the option "U",the command will achieve the function of plug-and-play for the          ║
║    │    │  removable hard disk,which can be removed by "EJEC U-" or from the tray menu thence.        ║
║    │    │☼If "TimeWait" is absent,a default value(3000) will be adopted; If the option "U" is absent  ║
║    │    │  ,so shall "TimeWait".                                                                      ║
║    │    │☼It is not suggested for INIT in publicly-issued WinPE to carry the option "K".This command  ║
║    │    │  is only applicable to the config file not to command line.                                 ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'IPAD'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│IPAD  [*] <Name>,<Shape>,[InitVal],[Event],[Type]                                            ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To create a control for IP address.                                                          ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │  * before <Name> indicates being automatically recycled before quitting block or function.  ║
║    │PARA│■Name:string,should be unique and not the same as those of other controls or environment     ║
║    │    │  variables.                                                                                 ║
║    │    │■Shape:the position and size of the editbox.The format is <L(left)T(top)W(wide)H(high)>,     ║
║    │    │  L,T,W and H are respectively followed by corresponding numbers.                            ║
║    │    │■InitVal:string,AA.BB.CC.DD                                                                  ║
║IPAD│    │■Event:the command to execute upon the notification of data change.                          ║
║    │    │■Type:number(in accumulation),0 by default,a normal editbox.Minus:disabled,0x10:invisible.   ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│ IPAD IPAD1,L32T244W240H24,192.168.1.100,Mess      ENVI @Name.VAL=?.FullIP                   ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼This command is generally located between _SUB and _END.          Refer to _SUB and CALL.   ║
║    │    │☼"ENVI @Name.Enable=[#]Num",0:disabled; 1:enabled(not to respond).#:used in the subprocess.  ║
║    │    │☼Use "ENVI @Name.Visible=Num" to set its invisibility; 0:invisible,not 0:visible.            ║
║    │    │☼Use "ENVI @Name.VAL=Num1.Num2.Num3.Num4" to set IP.                                         ║
║    │    │☼Use "ENVI @Name.VAL=?[.]Name1; Name2; Name3; Name4" to return IP."." indicates Name1(If     ║
║    │    │  the control name Name1 is absent,so can "." together with "Name1")returning full IP.       ║
║    │    │☼Use "ENVI @Name.VAL=#Pos" to set the position of the cursor.1~4.                            ║
║    │    │☼Use "ENVI @Name.VAL=#Pos:StartRange:EndRange" to set the range of numbers.0~255.            ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'ITEM'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│ITEM [-na] [-b[:ParentHwnd]] [-right] [-left] [-def] [-font:FontSize:FontNameAdorn] [-color:C║
║    │    │   olorSet] [*] <ButtonName>,<ButtonShape>,[ButtonTitle],[ButtonEvent],[ButtonIcon],[Status] ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To create a button in the window defined by _SUB.-pcenter:picture center aligned; -round:    ║
║    │    │oval button; -nscope:no frame;  -def:ENTER applicable;  -na:not active -b:bind to parent     ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│  * before <ButtonName> indicates being automatically recycled before quitting the block or  ║
║    │    │  function.-nfocus:no focus.                                                                 ║
║    │    │■ButtonName:string,should be unique and not the same as those of other controls or           ║
║    │    │  environment variables.                                                                     ║
║    │    │■ButtonShape:position and size of the button.The format is <L(left)T(top)W(wide)H(high)>.    ║
║    │    │  L,T,W and H are respectively followed by corresponding numbers.                            ║
║    │    │■ButtonTitle:characters on the button to describe the function of the button and the         ║
║    │    │  command to execute.                                                                        ║
║ITEM│    │■ButtonEvent:the command to execute when the button is clicked.It should be a valid command  ║
║    │    │  supported by PECMD.                                                                        ║
║    │    │■ButtonIcon:the icon displayed on the button with the format as <IconName#ID>,IconSize =     ║
║    │    │  ButtonH - 6.                                                                               ║
║    │    │■ButtonStatus:number,default 0:enabled,minus:disabled,16:invisible,4:in multiline.           ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│ITEM Button3,L32T108W300H54,resource manager,EXEC explorer.exe,%SystemRoot%\explorer.exe     ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼This command is generally located between _SUB and _END.          Refer to _SUB and CALL.   ║
║    │    │☼Use "ENVI @ButtonName=ButtonTxt" to set the text on the button.   Refer to ENVI.            ║
║    │    │☼Use "ENVI @ButtonName.Enable=[#]Num" to set its serviceablilty,0:disabled; 1:enabled(not    ║
║    │    │  to respond).#:used in the subprocess.                                                      ║
║    │    │☼Use "ENVI @ButtonName.Visible=Num" to set its visibility; 0:invisible,not 0:visible.        ║
║    │    │☼Use "ENVI @ButtonName.color=[Color]" to set the text color.                                 ║
║    │    │☼Use "ENVI @CtrlName.*del=" to delete.                                                       ║
║    │    │☼Use "ENVI @CtrlName.ID=?[WinIDVarName][;CtrlIDVarName][;Pic_ID_Name]" to query              ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'KILL'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│KILL[**] [-force] [-exitcode=NUM] [-explorer]            <ProcName[|usrname]|*pid|\[WinTitle]║
║    │    │                              |@[WinName]|@@WinID|**tid|*&hpid|**&htid>                      ║
║    │    │KILL -svr2                                                                                   ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To terminate a specified process by force.NUM refers to the exit code of the process.        ║
║    │    │-svr2 aims at MESS-svr2, -force:to kill the process by force.  KILL**:Forced synchronization ║
║    │    │-explorer indicates that explorer.exe will not automatically restart. -gui:process manager   ║
║    │    │-tree pid_tree, -1 once                                                                      ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║KILL│PARA│ProcName,that is EXE FileName(or path), including *?.pid refers to process ID(PID).If        ║
║    │    │ WinTitle/WinName is absent,the current window is referred to.                               ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│KILL WinLogon or KILL \%ABC% or KILL -exitcode=0 *123 or KILL @ABC                           ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │This command will terminate all the processes whose names match the front part of "ProcName" ║
║    │    │Therefore if the param is absent,all processes are likely to be killed.                      ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'LABE'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│LABE[-|+.*>] [-right -center -left -trans -nf -w -vcenter -ncmd -3D] [-mod] [*]              ║
║    │    │    <LabelName>,<LabelShape>,[LabelTxt],[*][CMD],[ColorSet],[FontSize:[FontName]]            ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To create a static text label in the window defined by _SUB.                                 ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■- and | indicate horizontal and vertical scroll bar(only to be viewed,not changeable,or     ║
║    │    │  use EDIT instead),+ indictates being with frame; . indicates not converting "\n" here;     ║
║    │    │  > means ENVI @ convert \n; * indicates preinterpreting the event(variable).Notice that the ║
║    │    │  params above should follow the command of LABE closely without any space,regardless of     ║
║    │    │  sequence.[-right]text right aligned,[-center]text center aligned,[-left]text left aligned, ║
║    │    │  [-trans]:transparent label,-3D:3D outline.-mod:outline. -nf:not flash. -w[x]:Autowrap[Word]║
║    │    │  * before <LabelName> indicates being automatically recycled before quitting the block or   ║
║    │    │  function.-vcenter is only applicable to a single-lined text.-ncmd:no features of a command ║
║    │    │■LabelName:string,should be unique,not the same as those of other controls or environment    ║
║    │    │  variables.                                                                                 ║
║    │    │■LabelShape:the position and size of the label.The format is <L(left)T(top)W(wide)H(high)>,  ║
║    │    │  L,T,W and H are respectively followed by corresponding numbers.                            ║
║    │    │■LabelTxt:string,the text to be displayed in the label,supportive of display in multiline,   ║
║    │    │  "\n" as the line break.                                                                    ║
║    │    │■CMD:valid command of PECMD,like EXEC $%CurDir%\a.TXT or EXEC $http://mdyblog.blog.163.com   ║
║    │    │  * indicates not displaying a hand-shaped cursor.                                           ║
║    │    │■ColorSet:number,consisting of such 4 groups of colors as the normal text color,normal       ║
║    │    │  background color,active text color and active background color respectively,separated by   ║
║    │    │  "#",like "Num1#Num2#Num3#Num4",hex number supported,like 0x00FFFF#0xFF0000#0x0000FF#0000.  ║
║    │    │  background=0xFFFFFFFF:TRANSPARENT.Any of them absent:system default value.If no # follows a║
║    │    │  certain number in the second active color group,it will be the same as the corresponding   ║
║    │    │  color in the former normal group; If there is 0/1 #,the two groups will be the same.       ║
║    │    │■FontSize:number,hex number supported,like 0x0A.If absent,the system default font size will  ║
║    │    │  be adopted.16:invisible.                                                                   ║
║LABE├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│LABE Label1,L20T280W128H48,Please click "Open" to view the files.                            ║
║    │    │LABE Label2,L20T24W80H20,Help Instruction,EXEC %CurDir%\ReadME.EXE,0xFF0000,12               ║
║    │    │LABE Label3,L20T48W80H20,DSystem,EXEC $http://mdyblog.blog.163.com,0x000000##0x0000FF,14     ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼LABE is generally located between _SUB and _END.                  Refer to _SUB and CALL.   ║
║    │    │☼If "BkColor" or "CMD" is set,"LabelTxt" will be displayed center-aligned and the center     ║
║    │    │  aligned text cannot be displayed in new lines.                                             ║
║    │    │☼To set the text on the label,use "ENVI @LabelName=LabelTxt".              Refer to ENVI.    ║
║    │    │☼If "CMD" refers to executing websites by the command of EXEC,a string of website "//" can   ║
║    │    │  be contained.                                                                              ║
║    │    │  If "CMD" is present,the mouse will become a hand-shaped one when it moves on to it.        ║
║    │    │☼Neither "LabelTxt" nor "CMD" is allowed to contain the character ",".If they must,a         ║
║    │    │  variable can be employed to store the character for its referencing(%DouHao%).             ║
║    │    │  "LabelTxt" can be set in the next command of ENVI,or set by ENVI in a timer,which is       ║
║    │    │  triggered once after the window is started.The "CMD" can be fulfilled by the command of    ║
║    │    │  CALL and executed in the mode of preinterpretation(%MYCMD%).                               ║
║    │    │☼The system default font size and color may vary in different systems as it has something    ║
║    │    │  to do with the system settings.                                                            ║
║    │    │☼Use "ENVI @LabelName.Visible=Num" to set its visibility; 0:invisible; not 0:visible.        ║
║    │    │☼As for the message,there is no default one.The message will be activated if there is a      ║
║    │    │  command.If there is no command yet a message is needed,it can be placed in the command     ║
║    │    │  field with *.Once the message is activated,the control shielded by it will be inoperable.  ║
║    │    │☼Use "ENVI @CtrlName.*del=" to delete.                                                       ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'LINK'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│LINK[AltDelimiter] [--force] [--f] [-][_|^|!]<ShortcutPath><,DestPath>[,ExecParam][,IconPath#║
║    │    │                                    IconIdx][,Rem] [,StartPos][,HK]                          ║
║    │    │LINK[AltDelimiter] [--force] [--f] [-][_|^|!]<ShortcutPath><,DestPath>[,ExecParam][,IconPath]║
║    │    │                                   [,IconIdx][,Rem][,StartPos][,HK] <==Old style             ║
║    │    │LINK[AltDelimiter] ? [--f] ShortcutPath,[DestPathVarName][,ExecParamVarName][,IconPathVarNam ║
║    │    │    [#[IconIdxVarName]]][,RemVarName][,StartPosVarNam][,HKVarNam][,DspMarkVarNam] //to query ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│To create a shortcut.  ^#~+- is AltDelimiter                                                 ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║LINK│PARA│■ShortcutPath:to specify a path for the shortcut to create without the extension ".LNK".     ║
║    │    │  --f:not to add ".LNK" automatically.                                                       ║
║    │    │■DestPath:to specify the destination file or directory for the shortcut.If not exist,the     ║
║    │    │  shortcut will not be created.If this command is used in a command file,the DestPath can be ║
║    │    │  a relative one(relative to the path containing the config file)                            ║
║    │    │■ExecParam:the execution params for the target program.                                      ║
║    │    │■IconPath:the path of the shortcut icon.                                                     ║
║    │    │■IconIdx:the index number in the file resources for the shortcut icon,0:the first icon;      ║
║    │    │  absent:default.                                                                            ║
║    │    │■HK:hotkey,the "#" or "," before IconIdx cannot be absent at this time.                      ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│LINK !%Desktop%\ADSLConnection,RASPPPOE.CMD,,RASDIAL.DLL#19                                  ║
║    │    │LINK ? %DeskTop%\ADSLConnection,&FN,&ARG,&FICON#&IICON,&COMMENT,&START,&KEY,&fSHOW           ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │♫"_" indicates starting the program in the way of being minimized and "!" hidden,both of     ║
║    │    │  which can be used to minimize and hide the window of the command."^" indicates being       ║
║    │    │  maximized."*" indicates creating a shortcut by force though DestPath does not exist.       ║
║    │    │  "," can be transfered to a variable.                                                       ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'LIST'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│LIST [-h] [*] <ListboxName>,<Shape>,<ListboxContent>,[ListboxEvent],[InitSelItem],[Status]   ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To create a listbox in the window defined by _SUB.                                           ║
║    │    │◙Notice:-h:H will limit the height of pulling-down◙                                          ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │  * before <ListboxName> indicates being automatically recycled before quitting the block or ║
║    │    │  function.                                                                                  ║
║    │PARA│■ListboxName:string,should be unique,not the same as those of other controls or environment  ║
║    │    │  variables.                                                                                 ║
║    │    │■Shape:the position and size of the listbox.The format is <L(left)T(top)W(wide)H(high)>,     ║
║    │    │  L,T,W and H are respectively followed by corresponding numbers.                            ║
║    │    │■ListboxContent:the items to select in the listbox.Items are separated by "|".               ║
║    │    │■ListboxEvent:the command to execute when the selected item is shifted to another in the     ║
║    │    │  listbox.It should be a valid one supported by PECMD.                                       ║
║    │    │■InitSelItem:the selected item in the listbox when initializing its settings.                ║
║    │    │■Status:number,minus:disabled.0x4:editable listbox,0x200:simple listbox,0x10:invisible,      ║
║    │    │  0x100:with automatic vertical scroll bar,0x400:to sort automatically,0x800:capital,0x1000: ║
║    │    │  lowercase.0x2000:not to trigger a command when editing.0x4000:to support dragging files in ║
║    │    │  0x10000:not to triger a command when setting. 0x20004:ReadOnly editable listbox            ║
║    │    │  0x40000/0x80000:Left/Top align 0x100000:Specifie width -vcenter:RefHeight:Vertical center. ║
║    │    │  Mouse Hover:WM_COMMAND:CBN_HOVER=0x7001,lp=id     0x7002,lp=ListHwnd                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║LIST│EXMP│LIST List1,L200T360W128H232,EXPLORER|XPLORER2|CMD,ENVI @Label1=%List1%,EXPLORER              ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼LIST is generally located between _SUB and _END.                  Refer to _SUB and CALL.   ║
║    │    │☼Use "ENVI @ListboxName=[+|-|:]ItemContent or ItemList" to modify the items in the listbox.  ║
║    │    │  "+":to add items to the listbox with the format "ENVI @ListboxName=+item to add or select" ║
║    │    │  "-":to delete the specified item with the format "ENVI @ListboxName=-item to delete"       ║
║    │    │  ":":to select the specified item with the format "ENVI @ListboxName=:item specified"       ║
║    │    │  No leading character indicates initializing all items of the listbox with the format       ║
║    │    │  "ENVI @ListboxName=Item1|Item2|Item3...".Practically only "Item1" is effective and it is   ║
║    │    │  the one to add or select,so it is with =+.Therefore,the item content in the listbox cannot ║
║    │    │  begin with such characters as "+","-" and ":".They can be transfered to a variable.        ║
║    │    │☼ENVI @ListboxName.ADDSEL=item to add or select.                                             ║
║    │    │☼ENVI @ListboxName.DEL=item to delete.                                                       ║
║    │    │☼ENVI @ListboxName.SEL=item to select.                                                       ║
║    │    │☼ENVI @ListboxName.VAL=to reset multiple items to add.  //separated by |; the original ones  ║
║    │    │  are cleared.                                                                               ║
║    │    │☼ENVI @ListboxName.ADD1=multiple items to add.          //separated by |                     ║
║    │    │☼ENVI @ListboxName.ADD=multiple items to add.           //string in multiline                ║
║    │    │☼ENVI @ListboxName.QUERY=LineNum; VarName     //If LineNum absent,all returned in multiline  ║
║    │    │☼Use "ENVI @ListboxName.Enable=Num" to set its serviceability.0:disabled,not 0:enabled.      ║
║    │    │☼The variable %ListboxName% is the selected item(string) in the listbox.                     ║
║    │    │☼The variable %ListboxName.isel% is the sequence number of the selected item(starts from 1)  ║
║    │    │☼ENVI @ListboxName.isel=the sequence number of the selected item.                            ║
║    │    │☼Use "ENVI @ListboxName.Visible=Num" to set its visibility; 0:invisible; not 0:visible       ║
║    │    │☼Use "ENVI @CtrlName.*del=" to delete.                                                       ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'LOAD'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│LOAD [-del] [--m] <FilePath|*[FileName]#ScriptID[|Dir]>[|Offset[|LenLmt]][*FuncName]         ║
║    │    │     [,StartDrvLetter]                                                    [ParamList]        ║
║    │    │LOAD <*[FileName]##InternalScriptID[:Dir]>[|Offset[|LenLmt]][*FuncName] FriendlyAlias        ║
║    │    │     [Param]                                                    //friendly type              ║
║    │    │LOAD [--logs:[*]logFileName]  --mem VarName [CmdLineParam] //to run dynamic memory file code ║
║    │    │//switch --logs:[*]logFileName]         //switch --Local :Forcelocal=1 Mode                  ║
║    │    │//switch --EnviMode:EnviMode=1 Mode     //switch --ncd:not to transfer the current directory ║
║    │    │                                          or set environment variables(multithread).         ║
║    │    │//switch -:not to transfer the lasting stack.                                                ║
║    │    │//switch -this or -*:not to transfer the lasting stack or executing stack.                   ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To execute the command in the config file one by one.  //Notice:The null character in the    ║
║    │    │file name should be bracketed with "".                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■specified FileName(containing path,supporting environment variables)and params.             ║
║    │    │  Offset:start from this.The Offset and LenLmt support TGMKS.                                ║
║    │    │■-del:to delete the script after loading it. --m \:to execute all sought files in the        ║
║    │    │  partition one by one.--m absent,to execute the first sought file only.                     ║
║    │    │■*FuncName:to call the function in the file and exit.                                        ║
║    │    │■|Dir:If Dir is a string of pure numbers,it should be bracketed with a pair of " or ' or     ║
║    │    │  transformed to the format as ":Dir".                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│LOAD \outpart\PECMD.INI  A B or LOAD #102 A B or LOAD "X:\Program Files\a.ini" "1 x" 2       ║
║    │    │LOAD --mem &MyStript A B C           For FileName #123, LOAD   #123 p1 should be written as: ║
║    │    │LOAD   .\#123  p1                                                                            ║
║LOAD├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼Each command is in a separate line and commands of the main process are executed totally    ║
║    │    │  in proper order,ignorant of invalid ones or blank lines.                                   ║
║    │    │☼The config file supports the whole-line note and post-line note.For the former,"//"         ║
║    │    │  (suggested),"; " or "`" can be used and the latter," //" or "; " or "`" can be used.       ║
║    │    │☼In a config file,the environment variable "%CurDir%" indicates the current directory and    ║
║    │    │  "%CurDrv%" the current drive letter.                                                       ║
║    │    │☼If the first non-quote character in FilePath is "\",the command will search the specified   ║
║    │    │  directory on all the disks for the file,like "LOAD \MyWinPE\PECMD.INI".                    ║
║    │    │☼If the directory containing the config file is set as the current directory,when a          ║
║    │    │  shortcut is to be created,a relative path can be used for the DestPath of the shortcut.    ║
║    │    │☼For others,refer to MAIN.Offset[+LenLmt] makes it possible to run devices or fragments of   ║
║    │    │  non file system and merge scripts.                                                         ║
║    │    │☼LOAD supports specifying a character set for file encoding.Before the compression of CMPS:  ║
║    │    │  If BOM exists,the compression is based on it,otherwise the charater set is specified in    ║
║    │    │  the first line with "#code=CharSetNum"; If the first line begins with #!,the character set ║
║    │    │  should be specified in the second line.BOM includes UNICODE,UNICODEBE and UTF8.            ║
║    │    │☼friendly type:to specify FriendlyAlias as %0 instead of RsrcName containing #.              ║
║    │    │  The resource directory of script ID is SCRIPT by default.                                  ║
║    │    │☼The FilePath or a certain param should be bracketed with a pair of double quotes if they    ║
║    │    │  contain null characters.Otherwise,they will be separated.                                  ║
║    │    │☼If the command word LOAD is not absent,the first literally successive string will be        ║
║    │    │  treated as FileName regardless of the possibly existing variable of null character(the     ║
║    │    │  content of the variable contains null character).The corresponding double quotes around    ║
║    │    │  the string can be absent at this time.(compatible with ver4.0).                            ║
║    │    │♫Please adopt the command line standards of windows and linux as the ones for writing        ║
║    │    │  commands,which are also the standard writing practice for the command of LOAD.             ║
║    │    │♫To avoid confusing FileName with #ScriptID behind,FileName can be bracketed with quotes.    ║
║    │    │  FileName can be non-figure characters.                                                     ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'LOCK'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│LOCK  [--exist|--try[*]] [-backlevel:][#[#]]Lock1Name Lock2Name Lock3Name... [,RetVarName]   ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To apply for mutiple automatic genius locks in the stack of the current function and get all ║
║    │    │the specified ones locked/released at the same time.                                         ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║LOCK│PARA│■LockName:a string of normal letters,figures or Chinese characters.# indicates process lock  ║
║    │    │  among processes; ## indicates system lock between different terminal services; Otherwise,  ║
║    │    │  it refers to the thread lock inside the process.Not case sensitive.Generally,different     ║
║    │    │  login users can use #%USERNAME%#subname,as well as GUID,like                               ║
║    │    │  {5ACCA58C-8EAB-410E-9263-C5ADAD0D8F9B}.                                                    ║
║    │    │■backlevel:a positive number,0 by default.It indicates no destruction after exit but minus   ║
║    │    │  one and being upgraded one level,used in the subprocess to create a lock and calculated    ║
║    │    │  according to the minimum number from head here.                                            ║
║    │    │  --exist:to check if there exists such a lock.0:not exist,1:exists,-1:failed.It mainly aims ║
║    │    │  to avoid many times of locking.                                                            ║
║    │    │  --try:try to lock.0:locked successfully,1:failed to lock.If locked,an operation of void    ║
║    │    │  locking by using --try* is practicable.                                                    ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│LOCK  SellTrainTicket  QueryTrainTicket or LOCK --exist #TrainTicketSellSys or LOCK .thread  ║
║    │    │      or LOCK .ole(single-thread) or LOCK .com[*Concurrency*Auth*ImplLevel]                  ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼Programmers do not need to unlock.Unlocking occurs when the function returns,the window     ║
║    │    │  destructed or the program quits the block.It will not be easy to give rise to interlocking ║
║    │    │  if the multiple locks are all locked together at the same time.Repeated locking is         ║
║    │    │  permitted.It is a good habbit to put the command at the very head of a function or in the  ║
║    │    │  same line closely following {. .thread indicates multi-thread synchronization;             ║
║    │    │  .ole indicates OLE synchronization; .com indicates COM synchronization.                    ║
║    │    │  An appointment:#pecmd indicates the common instant lock to atomize a set of operations.    ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'LOGO'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│LOGO [-] [-enable] [-wait] [-trans:Transparency] [FilePath][,Color]                          ║
║    │    │LOGO [-] [-enable] [-top] [-trans:N] --[,TranspColor] //to prepare a vancus for the command  ║
║    │    │of TEXT,background color by default.                                                         ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To set or close the login screen.-:quick exit without fading out.-top:to be on the top.      ║
║    │    │-enable:to press ESC to exit.-wait:to wait for the end of the animation.                     ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│☼FilePath is the name of a picture(path included) supportive of the format BMP/JPG/PNG/GIF   ║
║    │    │  and so on(need the support of GDI+).                                                       ║
║    │    │☼Color indicates the background color,hex number supported.If both the LOGO picture and      ║
║    │    │  background color are set,the display priority will be given to the LOGO picture.           ║
║    │    │☼If the LOGO picture is invalid,the background color will be enabled; If the background      ║
║    │    │  color is invalid,an internally defined background color in the registry will serve as the  ║
║    │    │  alternate.                                                                                 ║
║    │    │☼If there are no params,the startup screen will be closed(fading out).Transparency:0-255     ║
║    │    │  //The transparent color is not applicable to a text.                                       ║
║LOGO├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│LOGO %SystemRoot%\XCMD.JPG                                                                   ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼This command is executed in a non-blocking mode.The next command will be immediately        ║
║    │    │  executed after its execution is finished.Therefore,if it is used in a command line,use the ║
║    │    │  command of WAIT to delay,or the program will exit right away without displaying the effect ║
║    │    │  of execution.                                                                              ║
║    │    │☼This command can be emloyed for many times.Changing different pictures in the process of    ║
║    │    │  startup is practicable if you want to do so.                                               ║
║    │    │☼A call of the command "LOGO" without any param is required before quitting the config file  ║
║    │    │  to close the startup screen.                                                               ║
║    │    │☼The memory for the LOGO picture is required to be a bit larger when it is used.             ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'LOGS'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│LOGS [--thread[@+] --lock:CheckNum --RAW=0/1 --ON=0/1 --p[-] --2[-] --t=0/1 --ln=1/0         ║
║    │    │     [--rt=1/0 --a --abak --tmp --vol[+] --part --rt[?]] [[*?FilePath][,Num]]                ║
║    │    │LOGS *   //to flush to the disk immediately and then release memory without closing the log  ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To create a log file to record the execution outcome of every command so that users can      ║
║    │    │verify the validity of the config file.                                                      ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│☼FilePath:refers to the name of the log file including its path.                             ║
║    │    │  --thread for cur thread only. @:Common  +:Both  None for Close:Close Both                  ║
║    │    │  --rt or * indicates realtime mode and flushing to the disk immediately.                    ║
║    │    │  --rt=1/0:to set the realtime mode.                                                         ║
║    │    │  --p:to print before execution; --2:to print before and after execution;                    ║
║    │    │  The suffix - means cancel,--t= indicates printing the time thread,--a:to append to the LOG ║
║    │    │  --ln:the line number;                                                                      ║
║    │    │  --np[-] indicates no logging according to the automatic judgement before execution;        ║
║    │    │  --ON= indicates the local switch to open or close the logs;                                ║
║    │    │  --RAW= indicates the local switch to export raw text without interpreting variables in it. ║
║    │    │  --rt? indicates the restoring mode(only to close the log file if "--rt?" is not followed   ║
║    │    │  by FilePath).                                                                              ║
║    │    │  --abak restore this LOGS on child LOGS out of range.                                       ║
║    │    │  --tmp retore old LOGS on this LOGS out of range. --lock:CheckNum:for operate               ║
║    │    │  --part &__LOGS is \\?\\Harddisk#Partition#  --vol &__LOGS is volume   --vol+BOTH           ║
║    │    │  LOGS --ln=0/1 LOGS --np[-] can be written as: ENVI^ logs_ln=0/1 ENVI^ logs_np=0/1          ║
║LOGS│    │☼Num:unlimited actually.More records in the log file demand larger disk space.               ║
║    │    │  The command led by @ indicating not writing records into the log file.                     ║
║    │    │  *?:equal to --rt --rt?                                                                     ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│LOGS X:\PECMD.LOG or LOGS * CONOUT$ //to debug the terminal; LOGS --a --rt --rt? %&OldLOGS%  ║
║    │    │//to restore the LOG.                                                                        ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼The command of "LOGS" without any param should be called once more to close the log file    ║
║    │    │  before accomplishing the config file.It is automatically executed before the program exits ║
║    │    │☼This command is not applicabile to the command line but to config file.                     ║
║    │    │☼It is not suggested using a log file in some publicly-issued WinPE.It is only intended for  ║
║    │    │  debugging. Restricted in message processing.                                               ║
║    │    │☼The config file lies in the directory containing the caller by default,as                   ║
║    │    │  X:\windows\system32\pecmd.ini indicates X:\windows\system32\ and X:\OrderUSB.WCS indicates ║
║    │    │  X:\; It is also permitted to directly specify FilePath like X:\pecmd_debug.log(X:R&W).     ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'LOOP'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│LOOP[;:] <LoopCond>,[!]<LoopCMD>     //;: replaces ,.                                        ║
║    │    │LOOP[;:] {! }{$#}[{! }<COND1> relation operator {! }<COND2> ...],{!}<LoopCMD> //combined     ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To check the loop conditions and execute the loop commands.                                  ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■LoopCond:The format is [$#]Var1[<CompaOperator>Var2]. '$' indicates string comparison       ║
║    │    │  (insensitive); or 'leftpart'<CompaOperator>'rightpart'; or *Name1<CompaOperator>Name2.     ║
║    │    │  '#' refers to integer comparison(INT64).The Leading character being absent or | indicates  ║
║    │    │   comparison of Double varialbe.                                                            ║
║    │    │☼comparison operator:"<",">","=","!",">=","<=","!=","<>" respectively indicates:less than,   ║
║    │    │  greater than,queal to,unequal to,great than or equal to,less than or equal to,unqual to,   ║
║    │    │  and equal to.                                                                              ║
║LOOP│    │■LoopCMD: '!' indicates inverting the outcome of the condition judgement first.The command   ║
║    │    │  will be executed in a loop until the condition holds.                                      ║
║    │    │☼combined conditions:[] are their symbols,and () can be nested.S| before[ indicate all       ║
║    │    │  behind being $| comparison.S| can be absent.|&@ are relation operators.There should be     ║
║    │    │  spaces between combined conditions,as well as before and behind the relation operators |&@ ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│LOOP #%Number%<100,CALL DoLoop  or LOOP $%Characters1%=%Characters2%,!CALL DoLoop            ║
║    │    │LOOP [ COND1 & ! COND2 & COND3 ], DoSth           //example of combination.                  ║
║    │    │LOOP [ #2 < 12 & $7 < 8 & 4 < 10 ],  MESS LOOP1   //example of combination.                  ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼There should be a command to modify the varialbe in the LoopCMD,or the loop will not end    ║
║    │    │  (endless loop); It is suggested placing the loop body in the sentences defined by _SUB and ║
║    │    │  _END.                                                                                      ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'LPOS'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│LPOS[*] [*] [-case] [[*][~]VarName][,[~]LineVarName]=Char,Num,Str //prefix* for many         ║
║    │    │LPOS**[*][#$] [-qu] [-delims:Separator] [-case] [[~]VarName][,[~]LineVarName]=SubStr,Num,Str ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To return the position of the specified "Char" from the left of the "Str".                   ║
║    │    │* indicates a VarName behind. ~indicates figuring out the position from right.               ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■VarName:to store the outcome of the command; -case:case sensitive.                          ║
║    │    │■Str:the string to check,any character or space permitted.                                   ║
║LPOS│    │■Char:the character to check,not case sensitive,any character or space permitted.Multiple    ║
║    │    │  characters will be treated in the substring mode.If the substring is",",it should closely  ║
║    │    │  follow =.                                                                                  ║
║    │    │■Num:to specify the number of times the character to check appears,1 by default.             ║
║    │    │■LPOS*:It is the SubStr to search for,ie,the part between "=" and ",",any character or       ║
║    │    │  space permitted.                                                                           ║
║    │    │■LPOS**:It is the SubStr to search for and return a string number separated by space.        ║
║    │    │  number>=1;  *** or -qu:to be compatible with MSTR;  $:only space;  #:only TAB,or -delims:  ║
║    │    │  to specify the separator(\n\r\t\v\f\b supported).                                          ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│LPOS iPos=a,2,123A56|1234A6|abcdef or LPOS iPos=a,3,123A56|1234A6|abcdef                     ║
║    │    │LPOS*** &&P2="BB FF 199",,AA "BB FF 199" DD                                                  ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼If "Num" is smaller than 1,the command will return the position of the character to check   ║
║    │    │  from the right of the string,eg,the outcome of the example above is 15; If the returned    ║
║    │    │  outcome is 0,that means no specified character is found.                                   ║
║    │    │☼This command will treat the string in Unicode.The returned value of example 1 is 1 and      ║
║    │    │  example 2 is 15(the same as the outcome when Num is 0).                                    ║
║    │    │☼The character starting from the second one of the substring cannot be ",",but the first     ║
║    │    │  one and the character mode can be ",".It can be transfered to a variable in that case.     ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'LSTR'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│LSTR [*] <VarName<=><Num>,<Str>                                                              ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To cut out the specified number of characters from the left of a specified string and return ║
║    │    │the outcome to a specified variable. * indicates a VarName behind.                           ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■VarName:to restore the outcome of the command;                                              ║
║LSTR│    │■Str:the source string,lenghth unlimited;                                                    ║
║    │    │■Num:the number of the characters to cut out.                                                ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│LSTR aStr=2,1234567890 or LSTR aStr=5,1234567890                                             ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼If "Num" is smaller than 1 or exceeds the length of the source string,the returned outcome  ║
║    │    │  will be the whole source string(the same as the string copy);                              ║
║    │    │☼This command deals with the string in Unicode.The returned value of example 1 is "12",and   ║
║    │    │  example 2 is "12345".                                                                      ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'MAIN'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│MAIN[*]  [--user] [--wait] [FilePath|CMD begin with TEAM or EXEC]                            ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To initialize the desktop,take over Ctrl+Alt+Del and create a new process to fulfill the     ║
║    │    │functions of LOAD. --user:of user level.                                                     ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■to specify the path of the config file to initialize.* indicates hiding the daemon          ║
║    │    │  immediately.If the specified file does not exist and the #102 script is not blank,the #102 ║
║    │    │  script will be adopted.                                                                    ║
║MAIN├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│MAIN %SystemRoot%\System32\PECMD.INI                                                         ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼MAIN aims to create the process of LOAD,resident in the memory after executing LOAD.It      ║
║    │    │  will install the keyboard hook to hook the function of "ExitWindowsEx".                    ║
║    │    │☼It is suggested using PECMD MAIN directly instead of PELOGON.EXE.                           ║
║    │    │☼The command of LOAD will automatically quit the memory after it fulfills the function of    ║
║    │    │  loading files.                                                    Refer to LOAD for more.  ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'MDIR'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│MDIR DirName                                                                                 ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│■To create a specified directory.                                                            ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║MDIR│PARA│DirName                                                                                      ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│MDIR %TEMP%                                                                                  ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼MDIR aims to create multilevel directories,supporting a directory name in the form of       ║
║    │    │  an environment variable.                                                                   ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'MEMO'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│MEMO[-|+.] [-right] [-center] [-vcenter[:Xshrink] [-rich] [*]                                ║
║    │    │<EditboxName>,<EditboxShape>[,EditboxContent][,DestFileName][,EditboxType][,EditboxColor]    ║
║    │    │[,Font]                                                                                      ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To create a multiline editbox in the window defined by _SUB.                                 ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■- indicates no horizontal scroll bar,| no vertical scroll bar,+ no frame,.indicates not     ║
║    │    │  converting \n or esle converting.Notice that params above should closely follow the        ║
║    │    │  command without a space,regardless of the sequence.                                        ║
║    │    │  The text is left aligned by default,-right:right aligned,-center:center aligned,-rich:     ║
║    │    │  supportive of setting colors. -u2d unix2dos                                                ║
║    │    │  * before <EditboxName> indicates being automatically recycled after quitting the block or  ║
║    │    │  function.                                                                                  ║
║    │    │■EditboxName:string,should be unique,not the same as those of other controls or environment  ║
║    │    │  variables.                                                                                 ║
║    │    │■EditboxShape:position and size of the editbox.The format is:<L(left)T(top)W(wide)H(high)>,  ║
║    │    │  L,T,W and H are respectively followed by corresponding numbers.                            ║
║    │    │■EditboxContent:the content to fill the editbox when it is initialized,multiline supported,  ║
║    │    │  \n or the native newline to break the line.A comma can be transfered to a variable.        ║
║    │    │■DestFileName:to specify the name of the text file,from which the content of the editbox is  ║
║    │    │  loaded.It will be ignored if the content is already specified.                             ║
║    │    │■EditboxType:Num(in accumulation),absent or 0 by default,indicating an editable multiline    ║
║    │    │  editbox."-":disabled; 0x8bit:read only; 0x10bit:invisible; 0x20bit:editable and support    ║
║    │    │  automatic newline; 0x40bit:to jump to the end; 0x100:to accept a file name dragged in;     ║
║    │    │  0x200:to accept all file names dragged in,in multiline; 0x400:number.(for compatibility)   ║
║    │    │  1-15:read-only.                                                                            ║
║MEMO│    │■EditboxColor:font,see EDIT.                                                                 ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│MEMO Memo1,L304T268W280H88,,%CurDir%\Readme.TXT,0                                            ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼MEMO is generally located between _SUB and _END.                   Refer to _SUB and CALL.  ║
║    │    │☼If [EditboxContent] is not blank,[DestFileName] will be ignored.If blank,the content        ║
║    │    │  specified by [DestFileName] will be loaded.For the convienience of reading in the notepad, ║
║    │    │  the overlong "EditboxContent" can be transformed into a new envrionment variable of string ║
║    │    │  by combining the nestedly assigned environment variable and a string cut out from the rest ║
║    │    │  of  EditboxContent.                                                                        ║
║    │    │☼Use "ENVI @EditboxName.Enable=[#]Num" to set its serviceability,0:disabled; 1:enabled (not  ║
║    │    │  to respond).#:used in the subprocess.                                                      ║
║    │    │☼Use "ENVI @EditboxName.ReadOnly=Num" to set the status of read-only.0:not read-only;        ║
║    │    │  not 0:read-only.                                                                           ║
║    │    │☼ForeColor and BkColor support hex numbers in the format of C,like 0xFFFFFF.                 ║
║    │    │☼Use "ENVI @EditboxName.Visible=Num" to set its visibility; 0:invisible; not 0:visible.      ║
║    │    │☼Use "ENVI @EditboxName.LINE=Num" to make a certain line visible.  Refer to EDIT for more.   ║
║    │    │☼Use "ENVI @EditboxName.Color=..."to set the color and font.                     See EDIT.   ║
║    │    │☼Use "ENVI @CtrlName.*del=" to delete.                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │MODL│ѺHow to use the modified content in the editbox as a new variable by assigning it.           ║
║    │    │  A:%EditboxName% like:                                                                      ║
║    │    │  ENVI$ &&NL=0d 0a                                                                           ║
║    │    │      EDIT| EDIT2,L36T25W187H49,EDIT2,,0x24                                                  ║
║    │    │      MEMO MEMO1,L38T81W182H77,MEMO1,,                                                       ║
║    │    │  MESS. EDIT2⌠%EDIT2%⌡   %&NL%  MEMO1⌠%MEMO1%⌡@#OK                                           ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'MENU'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│MENU [-bar -sub] <Name>,[Title],[Event],[Status][,[?][<X:Y:W;H>]Picture]                     ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To add a menu item to the user-definied menu of the tray icon.-bar:window menu(indispensable ║
║    │    │for the first command of MENU,optional for the subsequent ones);                             ║
║    │    │-sub:Params behind belong to a submenu(_SUB).                                                ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■Name:string,except the dividing line,it should be unique,not the same as those of other     ║
║    │    │  controls and environment variables.                                                        ║
║    │    │  If Name or the first character of it is "-",it indicates a dividing line,or it is a normal ║
║    │    │  menu item.                                                                                 ║
║    │    │■Title:characters on the menu item to describe the functions or instructions of it.          ║
║    │    │■Event:the command to execute when the menu item is clicked.It should be a valid command     ║
║    │    │  supported by PECMD.*** indicates quitting the tray icon.                                   ║
║MENU│    │■Status:0 by default,indicating a normal menu,- or ±1 indicates being disabled. 2:dividing   ║
║    │    │   line 4:checked 8:to hide. 0x20:subfield                                                   ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│MENU Menu2,definition 1024X768 color 32 bit RefRate 85,DISP W1024H768B32F85 or MENU -        ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼MENU is generally located beyond _SUB and _END.                                             ║
║    │    │☼The icon for the tray icon menu is determined by the window icon defined by _Sub.If it is   ║
║    │    │  absent,the main icon of PECMD will be adopted.                                             ║
║    │    │☼MenuItemTitle is referenced via the environment variable %MenuItemName%,including           ║
║    │    │  %MenuItemName.Enable%.                                                                     ║
║    │    │☼Use "ENVI @MenuItemName=NewTitle" to set and modify MenuItemTitle.                          ║
║    │    │☼Use "ENVI @MenuItemName.Enable=Num" to set the serviceability of the editbox; 0:disabled;   ║
║    │    │  1:enabled.                                                                                 ║
║    │    │☼Use "ENVI @MenuItemName.ID=?[hmenu][;CtrlIDVarName][;MenuItemSN]" to query IDVarName etc.   ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'MESS'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│MESS[-*=.-svr-svr2-max-min-size-close-top-icon[-x:x][-y:y][*]Num][-sub:LxTy:ObjName]         ║
║    │    │    [TxtContent][@MsgWinTxtTitle][#MsgWinType[*TimeAutoClz(ms)][$DefaultOption]]             ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To display a [Yes/No] message window or a message window with a [Confirm] button.            ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■MsgWinTxtContent:supportive of a multiline text.Use "\n" to break the text lines or adopt   ║
║    │    │  the primitive multiline text.Any character is permitted.Null characters behind MESS will   ║
║    │    │  be retained.                                                                               ║
║    │    │  "." or -raw after MESS indicates not converting "\n".Special characters can be transfered  ║
║    │    │  to a varialbe.-svr or -svr2:to display the window before login. -p:ParenetWinID            ║
║    │    │  -max:with maximize button, -min:with minimize button, -size:size ajustable, -close:without ║
║    │    │  close button.+top:to be on the top,-x/y:position on the screen. -var:Text is VAR           ║
║    │    │  insvr:Display on User desktop in service. -txt static text  -cb to clipboard -id:WndName   ║
║    │    │■MsgWinTxtTitle:any single-lined text except @. Null characters behind MESS will be          ║
║    │    │  retained.Special characters can be transfered to a variable(%Mouse%).                      ║
║MESS│    │■MsgWinType:Presently support "YN","OK",“YNC","OKC","RETRY" and "ABORT"."OK" by default.     ║
║    │    │■If time for automatically closing is set as 0 or not set,the message window will not be     ║
║    │    │  closed automatically.The default selection is indicated as Y or N,like $Y,$N,$C,$1($O),$O, ║
║    │    │  $2($C),$3($A),$A,$4($R),$R,$5($I),$I,$6($Y),$7($N).A minus will not display the counting.  ║
║    │    │■MESS-bin or "MESS*" indicates the concurrent call enabling the message window to be         ║
║    │    │  simutaneously operated together with its parent window.The next command cannot be executed ║
║    │    │  before it is closed.                                                                       ║
║    │    │■MESS-bg or MESS indicates the backstage call.The subsequent commands will be continued but  ║
║    │    │  some time-consuming operations will still be blocked.                                      ║
║    │    │■MESS-tbin or "MESS~" indicates backstage call.The subsequent commands will be continued     ║
║    │    │  and some time-consuming operations will not be blocked.It can be used for debugging.       ║
║    │    │■"MESS=" indicates the blocked call.The whole message loop will be blocked                   ║
║    │    │  (applicable to soem special debugging).                                                    ║
║    │    │■"MESS" indicates the blocked call.The whole message loop will not be blocked.               ║
║    │    │■Number after +icon:0~7.No number,no icon.0:bang/1:warning,2:information/3:asterisk,         ║
║    │    │  4:problem,5:stop/6:error/7:waved stop.                                                     ║
║    │    │  >=32 or led by * indicates being user-defined,corresponding to the number of IconGroup.    ║
║    │    │  Icons can be added on one's own.102 indicates a green checkmark.+icon**DLLEXE File#Number  ║
║    │    │  is also practicable.                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│MESS Insufficient physical memory,\n Set virtual memory? @Set virtual memory #YN *10000 $N   ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼User's selection to the message window will be stored in the variable %YESNO%,%&YESNO%.     ║
║    │    │  If [Y] is selected,its value will be YES,and NO for [N].If the window is closed overtime,  ║
║    │    │  the default selection will be returned.The command of FIND is applicable to judging the    ║
║    │    │  value of this environment variable.                                                        ║
║    │    │  Other returned value includes OK,CANCEL,RETRY,IGNORE and ABORT.                            ║
║    │    │☼If the param of default selection is left out from the message window of "YN" type,the      ║
║    │    │  returned value after the window automatically closes will be NO.For the convenience of     ║
║    │    │  debugging,all params can be absent.                                                        ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'MOUN'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│MOUN[-svr] [-u] [!][WimPath],<MountDestDir>,[ImgID],[WimTempDir]  //-u:to support WimPath    ║
║    │    │MOUN -query VarName[=rw][,MountDestDir][,WimPath]                                            ║
║    │    │MOUN-udm  ⌠sync⌡ [-ud|-uh|-muh[g]] [-u+] [-udfs] [-udm-] [-w] [-m] [-mall] [-mhide[1]]       ║
║    │    │    [-findboot[Only][: RetVarName2]] [-CurDrv[R][+]] [-onlys] [-ud[m]id: UDxID] [-mnorhide]  ║
║    │    │    [-udmask: Mask] [-check[-]] [-ret: RetVarName] [-udimg:File] [-mh: <efi|auto|1-4>]       ║
║    │    │    [-mw[-]] [-opt[s]:imdisk params] [-CheckFile: FilePath]  DevName [DrvChars]              ║
║    │    │MOUN-udm  upud  -ret: &&V  -udmask: Attr DevName  UDName Off(B) Len(B,>4G allowed)           ║
║    │    │MOUN-udm  listudm -ret:RetVarName [-norm[-]] [-udfs [-udmask:flagMask]] [-u+[pre]] [-vhd]    ║
║    │    │    DeviceName [MultiUDWildcard]                                                             ║
║    │    │MOUN-udm  listud  -ret:RetVarName [-udmask: flagMask] DeviceName [MultiWildcard] //to return ║
║    │    │    the detailed UD file list.                                                               ║
║    │    │MOUN-udm findboot -ret:RetVarName //to find boot device,return:DiskNum UDMNum Type RawInf    ║
║    │    │MOUN-udm findudm [-img] [-norm] -ret:RetVarName DrvChr //to find corresponding UDM,          ║
║    │    │                                                        return:DiskNum UDMNum DrvChr Type    ║
║    │    │MOUN-udm setboot -ret:RetVarName BootMenu [<UDMDrvChr|DiskNum>[#udmNum]] [Type] [AutoMntDrv] ║
║    │    │                                                      //to set windows boot menu, Auto Mount ║
║    │    │MOUN-udm ud2fs [-efi] DevName [bClr=1] [bMkNew=1] [FS=FAT] [sz1:sz2...[:*]]   //UDExt to FS  ║
║    │    │MOUN-udm mapsub [-check] [-CheckFile[+]:Fn] [-tag[+]:Fn] [-ret:RetName] [-r] FileName DrvChr ║
║    │    │                                                       //w-mount file on RO UDm              ║
║    │    │MOUN-vhd [-c[x] -d -u -r] [-s:SectSize] VHDPath,[MountPath|Size|Parent],[ID],[RetName][,AppP ║
║    │    │    eVar] //-c[x]:Create[VHDX] -r:RO -d:Dynamic  AppPeVar:Unmount once out of variable range ║
║    │    │        // or the process exits. -iso:ISO                                                    ║
║    │    │MOUN-vhd -query [-r] VHDPath,InOutPEVar[,RetBytesPEVar][,Cmd]//GET_VIRTUAL_DISK_INFO 8B:CMD  ║
║    │    │MOUN-udm OnlyApp [-noauto] //to check and run single application like one-key ghost.         ║
║    │    │MOUN-udm SetOnlyApp <-udm:DiskNum [-desc:Note] -bioscmd:biosBootCMD" "-eficmd:efiBootCMD"    ║
║    │    │    -efimenu:EFIMenu -biosmenu:BIOSMenu]|BootMenu>  Type Func APP AppDisk AppPt  bShutdown   ║
║    │    │    OpDisk OpPt  pt_sn SrcDsk SrcPt SrcPath [WimName FSType  FSLable PBR BootDsk  BootPt     ║
║    │    │    grldr WimZx0 HvDesc]                                                                     ║
║    │    │MOUN-udm  setbootcfg BootMenuFile "Val"  [LeadTag]                                           ║
║    │    │MOUN-udm  getbootcfg RetName LeadTag                                                         ║
║    │    │MOUN-udm  Server [-FreshDriver[+|Only] -quit|-tips- -qfree[a|-] -safe -replace] //AuMounSvr  ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To mount a certain image in WIM to a specified directory or unmount the mounted one.         ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■WimFileName:Microsoft Windows Imaging Format (WIM) File of WIM format.                      ║
║    │    │■MountDestDir:directory to mount WIM to.                                                     ║
║    │    │■WimImgID:ImgID in WIM,indicated as a number.It can be absent if the image file is mounted   ║
║    │    │  read-only or ImgID is 1.                                                                   ║
║MOUN│    │■WimTmpWorkDir:When WimFltr temporary working directory is set,the image file is mounted     ║
║    │    │  read-and-write.It is suggested setting the directory to the hard disk.* refers to the      ║
║    │    │  system temporary directory.                                                                ║
║    │    ├─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │■-query:query mode.VarName:to return the outcome. -u:to unmount. MOUN-svr:Valid on Logout    ║
║    │    │■=rw:to return the RW mark only(1/0).                                                        ║
║    │    │■MountDestDir:the directory to query.If absent,all will be queried(in multiline string).     ║
║    │    │■-dll WIMDLL-PATH:                                                                           ║
║    │    │■-onlys:to mount by soft-only ignorant of the partition table; -mhide:to mount a partition   ║
║    │    │  unrecogniezed by windows; -mall:to mount all UDm partitions;  -m:many times;               ║
║    │    │  -ud or -u:soft unmount; -uh:to remove the drive letter from the partition table;           ║
║    │    │  -muh:-uh first then mount,unmount soft CDROM intelligently(g:by force); -u+:to support U+. ║
║    │    │  -cleartmp[only]:to clear the temporary partition item for UEFI; -udfs:to support UD;       ║
║    │    │  -udm listudm  -ret RetVarName DeviceName:to list UDm partitions;                           ║
║    │    │  -udm sync  "DrvLetterList"  //to flush data to the memory bank; -udm-:not to operate UDm,  ║
║    │    │  the mask can be *. -mh:partition talble method;                                            ║
║    │    │  -udimg:many times; flagMask:0x20000:UD extension,0x40000:only UD extension,0x80000:to      ║
║    │    │  check UD extension.                                                                        ║
║    │    │  -ainf:variable name for the cache of the partition table;                                  ║
║    │    │  -nbrd[-]:not broadcast [or broadcast] the drive letter;                                    ║
║    │    │  -opt[s]:can be used many times  -opts:helps MOUN to rid the params of the quotes.          ║
║    │    │  -CheckFile:FileNameForValid:can be used many times: list or mount only if there is one.    ║
║    │    │  -CheckFile+:FileNameForValid:can be used many times: list or mount only if there are all.  ║
║    │    │  -CheckVol[R]: Volume: can be used many times: list or mount only if there is one. R:By SED ║
║    │    │  -CheckUuid[R]: UUID: can be used many times: list or mount only if there is one. R:By SED  ║
║    │    │  -CheckPtType: Type: can be used many times: list or mount only if there is one.            ║
║    │    │  -tag:FileNameForValid:can be used many times: mount if there is one.                       ║
║    │    │  -tag+:FileNameForValid:can be used many times: mount if there are all.                     ║
║    │    │  -check[-]:not to mount invalid file sytem[or not]                                          ║
║    │    │  -udmid:pt#PhyPartitionNo:Mount partition with imdisk(Read only by default).                ║
║    │    │  -udmdev:"TypeID:DevID:UDMNum":to specify the device and UDm to mount,or else not to mount. ║
║    │    │  If TypeID is DevID,the following is DevID of the disk; If TypeID is devsg,the following    ║
║    │    │  is disk signature.                                                                         ║
║    │    │  -mnorhide:to mount normal hidden partition as well.                                        ║
║    │    │  Type(setboot,findboot,findudm):udm ud u+ pt(normal partition)   UDMNum:PT number/ud file   ║
║    │    │  -vhd:fix for VHD                                                                           ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│MOUN %CurDrv%\Outpart\PROGRAMS.WIM,%ProgramFiles%,1  MOUN -udfs -udm- \\.\PhysicalDrive1 R-  ║
║    │    │MOUN -query RW=rw,D:\Y or MOUN -query MSG1,D:\Y or MOUN -query ALL                           ║
║    │    │MOUN-udm  -mhide \\.\PhysicalDrive* R- or MOUN-udm  -u \\.\PhysicalDrive1                    ║
║    │    │or MOUN-udm  -u "" R                                                                         ║
║    │    │MOUN-udfs  -udm- -mall -udimg: *.img -udimg: *.iso  -udmask: 0xA0001 \\.\PhysicalDrive1 R-   ║
║    │    │MOUN-udfs  -udm- -udmask: 0x60000 \\.\PhysicalDrive1 R-    //only UD extension.              ║
║    │    │MOUN-udm   -mall -mhide1  \\.\PhysicalDrive%&hd%  R-       //only UDm                        ║
║    │    │MOUN-udm   -udm- -u+ -mall -mhide1  \\.\PhysicalDrive%&hd%  R-                //only U+      ║
║    │    │MOUN-udm   -udm- -mall -mhide1  -udfs  -udimg: EFI*.IMG \\.\PhysicalDrive1 R- //only UD      ║
║    │    │MOUN-vhd  -c D:\A3.VHD,20M      MOUN -vhd  D:\A3.VHD,B:                                      ║
║    │    │MOUN-udm SetOnlyApp -reboot -udm:1 "-bioscmd:chainloader /WAIPE/PEXPWIM.BIN"                 ║
║    │    │    "-eficmd:chainloader /EFI/boot/boot${arch0}.efi" "-desc:NiHao" -biosmenu:/WAIPE/PEW      ║
║    │    │    -efimenu:/EFI/microsoft/boot/bcd  GHO 1  ?:\ZhiMaKaiMen_ZDHuiFu.NTR                      ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼The name of file and directory supports interpreting environment variables; FBWF should be  ║
║    │    │  behind MOUN when it is used.                                                               ║
║    │    │☼Path beginning with "\" indicates searching all drive letters and partitions (including     ║
║    │    │  the hidden ones) for the file with a specified directory like MOUN \MyPE\OP.WIM,%PF%,1     ║
║    │    │☼"!" indicates assigning a drive letter to a hidden partition after the WIM in it is         ║
║    │    │  successfully mounted like: MOUN !\MyPE\OP.WIM,%PF%,1                                       ║
║    │    │☼Leaving out WimPath indicates unmounting the image.ImgID being non zero indicates saving    ║
║    │    │  the modified contents when the image is unmounted,while 0 not saving.                      ║
║    │    │☼The full outcome of query is: ID FLAG "WIM File"  "MountDir",In FLAG,the 0x100 bit is RW.   ║
║    │    │☼MountDestDir is created automatically.If a read-only file is mounted,the mounting will be   ║
║    │    │  automatically converted to the read-only mode.                                             ║
║    │    │☼Inner IMDISK needs cabinet.DLL.                                                             ║
║    │    │☼Driver auto mount to can be stored in HKLM\SOFTWARE\PELOGON\USRCFG\AutoUDmMount.DriverTo.   ║
║    │    │  Can set it at the begin of PECMD.INI.                                                      ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'MSTR'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│MSTR [*] VarName=Pos,Length,Str                                                              ║
║    │ 2  │MSTR[*$] [*] [-xq] [-left] VarName1,VarName2...,VarNamen=<[~]StrID1[-]>...<[~]StrID2[-]>Str  ║
║    │ 3  │MSTR[*$] [*] [-xq] [-left] VarName1,VarName2...,VarNamen=<[~]StrID1*>Str                     ║
║    │ 4  │MSTR[*$] [*] [-rq[1]] [-trim[p][left|right]] VarName=Str //to remove [prepositive] white     ║
║    │    │ space character at head and end,$:only space. suffix*:only TAB,-delims:UNICODE-delimiters to║
║    │    │specify a special delimiter; -xq indicates \" can be contained in the string; -rq:to romove  ║
║    │    │ ""; -rq1:to contain the single ". -term:UNICODE delimiters left. StrID#:Returns Str-Count   ║
║    │    │-1 add double quotes on spcae. -trim*+[+]  -rq*+[+]  trime before[after] oprating for -trim  ║
║    │    │-trimleft -trimright -rq -rq1. -trimp:Pretreatment.  switch* indicates a VarName behind.     ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To cut out a string of specified length from a specified position in a specified "Str"       ║
║    │    │towards the right and return the outcome to a specified variable.                            ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■VarName:to store the outcome of the command;                                                ║
║    │    │■Str:the source string,length unlimited;                                                     ║
║MSTR│    │■Pos:number,to specify the starting position of the source string;                           ║
║    │    │■Length:number,to specify the length for cutting out;                                        ║
║    │    │■StrID:ID>=1,to return the string according to the ID number.Strings are defined by space    ║
║    │    │  or ".The pair of <> should not be left out.~ indicates removing the outermost pair of ".   ║
║    │    │  * behind MSTR indicates separating with TAB; $ separating with space.-left:to retain null  ║
║    │    │  characters at the very beginning of the string.(the TAB mode by default)                   ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│MSTR aStr=2,4,1234567890 or MSTR aStr=<~2>1 "a b c" 3 or MSTR aStr=-2,4,1234567890           ║
║    │    │MSTR a,b,c,d=<4><3><5><2>1111  222 333  444  555 666                                         ║
║    │    │MSTR a,b,c,d=<2*>1111  222 333  444  555 666  or MSTR a=<1>"PROG \"%L%\" "  1234             ║
║    │    │MSTR Q1,Q5,Q6,Q6x=<1><5-><6><6->%vSTR%      MSTR Q1,Q5,Q6=<1-><5-><6>%vSTR%  //mixed         ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │MODL│1.The value of a varible(or a certain line of the text)like 5555    66  uuty    00  pp ww    ║
║    │    │  is broken by one or more spaces(the number of spaces is uncertain,but one at least)into    ║
║    │    │  several sections,the lengths of which are also uncertain.                                  ║
║    │    ├─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │ENVI &STRING=5555 66 uuty 00 pp ww                                                           ║
║    │    │MSTR V3=<3>5555 66 uuty 00 pp ww               ///uuty                                       ║
║    │    │MESS V3=[%V3%]@#OK                                                                           ║
║    │    │MSTR V3=<3>%&STRING%                           ///uuty                                       ║
║    │    │MSTR V_3=<-3>5555 66 uuty 00 pp ww             ///00                                         ║
║    │    ├─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │2.HELP LAMBDA  to separate the param automatically  //LAMBDA code pattern of the model       ║
║    │    ├─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │ENVI &&V3=                                                                                   ║
║    │    │[]5555 66 uuty   00 pp ww{  ENVI &V3=%3}    ///no null characters before },or it will be     ║
║    │    │                                            treated as part of &V3   MESS V3=[%&V3%]@#OK     ║
║    │    │[]5555 66 uuty   00 pp ww{  TEAM ENVI &V3=%3|  }   ///There are null characters before },    ║
║    │    │                                                      and | is the end of &V3.               ║
║    │    │MESS V3=[%&V3%]@#OK                                                                          ║
║    │    ├─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │3.HELP _SUB function to separate the param automatically  //_SUB code pattern of the model   ║
║    │    ├─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │_SUB  GETV3                                                                                  ║
║    │    │  ENVI &V3=%3                                                                                ║
║    │    │_END                                                                                         ║
║    │    │ENVI &&V3=GETV3 5555 66 uuty 00 pp ww       ///uuty                                          ║
║    │    │MESS V3=[%&V3%]@#OK                                                                          ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼If "Pos"<0,the cutting out will be processed starting from the tail in reverse order;       ║
║    │    │  If "Length"<=0,real_length = total_length_of_real_surplus - absolute value of "Length"     ║
║    │    │☼If "Pos"=0,it will be treated as 1,and if "Length" <1 or exceeds the length of the source   ║
║    │    │  string,all characters behind the starting position will be returned;                       ║
║    │    │☼This command will treat strings in Unicode.So the returned value of example 1 is 2345,and   ║
║    │    │  example 2 a b c.                                                                           ║
║    │    │☼In format 2,the variables in VarName list will be assigned respectively according to the    ║
║    │    │  positions in StrID list.                                                                   ║
║    │    │☼Format 3 is a simplized form of format 2 to get a successive list of StrID.                 ║
║    │    │☼Format 4 indicates assigning the whole part starting from the StrID to VarName.             ║
║    │    │☼Fortmat234 all support cutting out characters in reverse order.-1 indicates the last one.   ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'NAME'    'FNAM'                                                                             ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│NAME [-ext] <VarName><=><FileName>                                                           ║
║    │    │FNAM [-ext] <VarName><=><FileName>                                                           ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNX│To return the basic name of a file(without directory or extension); -ext:to retain extension ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║FNAM│PARA│■VarName:to store the main file name;                                                        ║
║NAME│    │■FileName:a valid file name.                                                                 ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│NAME  fNam=C:\Windows\System32\calc.exe or NAME aExt=X:\Path1\Path2\FileName                 ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼The outcome of example 1 is "calc",and example 2 is FileName;                               ║
║    │    │☼The returned value of FDIR,FDRV and FEXT can be checked or compared by the command of FIND  ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'NTPC'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│NTPC [-q|-qo] [server][,name]                                                                ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To obtain and synchronize time.                                                              ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║NTPC│PARA│■-q:to synchronize and query,-qo:to query only,and save the outcome to the variable name.    ║
║    │    │  No -q or -qo indicates synchronizing only.No server indicates obtaining the default time.  ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│NTPC -q   ,CurrentTime                                                                       ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'NUMK'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│NUMK <Num>                                                                                   ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To control the switch for the numeric keyboard.                                              ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║NUMK│PARA│■If Num is 0, the switch is off,and 1 on.                                                    ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│NUMK 1                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │The existing command of SEND can fulfill the same function,yet not quite precisely.When NUMK ║
║    │    │is on,sending the key once more will reset the switch at off.                                ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'PAGE'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│PAGE [*force] <PageFilePath> <InitSize> [Max]                                                ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To set the page file(vitual memory).                                                         ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■Use the format of DOS 8.3 to specify a path to the page file,like "C:\PageFile.sys".        ║
║    │    │  The unit of InitSize and Max is MB; If Max is absent,Max will be automatically set the     ║
║    │    │  same as InitSize.                                                                          ║
║PAGE├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│PAGE C:\PAGEFILE.SYS 128 256                                                                 ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼If a page file is set,this partition cannot be formatted.                                   ║
║    │    │☼If the memory available > InitSize,this command will not set a page file,ie,the defined     ║
║    │    │  InitSize can be used as the condition for setting a page file.                             ║
║    │    │☼This command will intelligently search for the qualified(hard disk and capacity) partition  ║
║    │    │  to set the page file starting from the one containing the defined name of the page file    ║
║    │    │  (including the drive letter) to avoid those slow u disk or removable hard disk.If the      ║
║    │    │  system starts up from u disk or removable hard disk,the page file defined in the config    ║
║    │    │  file is likely to be right in them.After a round of search,only if no qualified hard disk  ║
║    │    │  partition is found will the u disk or removable hard disk be employed to set the page file ║
║    │    │  *force:forcely.                                                                            ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'PART'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│PART [-gui][-usb][-fs][-up] [-admin] [-super] [-align[=..]] [-alignend[=..]] [-clear] [-raw] ║
║    │    │   [-swap:id] [-CHS=C:H:S] [del/init] [-img=[*Off*SZ*]FileName|Disk]#Part [a|-a] type        ║
║    │    │   [[-]start [len]]                                                                          ║
║    │    │PART -gpt [-up] [-admin] [-super] [-align[=..]] [-alignend[=..]] [-clear] [-raw] [-cmp]      ║
║    │    │   [del/init] [Disk]#[+]Part  -|typeguid  -|start  -|len|@FinalSectorAddr guid -|Attr -|Name ║
║    │    │PART update  [Disk]                                                                          ║
║    │    │PART [-ahup] hupdate[f]  [Disk]    //to flush the disk.     f:power mode(rebuild disk id)    ║
║    │    │PART [-devid[x]] list <disk|cdrom|floppy>  [Disk],VarName //-devid:to return disk DEVID;     ║
║    │    │     -devidx:to return physical ID.                                                          ║
║    │    │PART [-hextp -phy -phy# -fill] list part [Disk[:LogicPart]],VarName //list:-phy #PhyPart     ║
║    │    │PART [-hextp] [-fill] [-raw] [-cdrom] list drv       DrvLetter,VarName                       ║
║    │    │PART -raw list drv  DrvLetter,VarName     //DevNo. Part DrvType Bus Drv MideaType            ║
║    │    │PART [-drv -phy -devid] list volume[dsk:Part|Drv|volum],VarNm //Volu Dev Pt DevTp PtTp Of Sz ║
║    │    │PART [-cdrom|-floppy] list parent     <DevNo|DrvLetter>,VarName                              ║
║    │    │PART [-cdrom] list dep   <DevNo|DreiverLetter>,VarName    //query source file                ║
║    │    │PART /mbr[=nt6|=win|=nt5|=dos|=[*LenLimit*]FileName]   [-img=FileName|Disk]                  ║
║    │    │PART [-phy] /pbr[=nt6[fat]|=win[fat]|=nt5[fat]|=dos|=[*LenLimit*]FileName]                   ║
║    │    │     [-img=FileName|Disk]#Part            //fat refer to the file systems of FAT/FAT32/ExFAT ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To create,delete,modify,hide and list partitions.                                            ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│ѺIn the safe mode by default,this command will only operate the generally unused main        ║
║    │    │  partition 3 or 4 excluding the extended partitions.                                        ║
║    │    │-gui:graphic mode; -usb:to list USB disk only; [-report[: RetVarName][ DiskNo]]to display or ║
║    │    │     output the list, ignorant of other params. -mount-:not show label with no drive letter  ║
║    │    │-admin:advanced mode(dangerous),capabile of operating partition 1 and 2;                     ║
║    │    │-super:super mode(rather dangerous):capabile of operating the extended partition;            ║
║    │    │-align:start aligned,cylinder aligned by default,followed by =64K,=128K,=512K,=1M etc;       ║
║    │    │-alignend:end aligned,-align by default,followed by =64K,=128K,=512K,=1M etc.                ║
║    │    │-clear:to clear the valid information in the partition by force; -raw:not to make any        ║
║    │    │     ajustment to start/len,or to return (Dev# Part# Type Bus).                              ║
║    │    │-[x]up: After the disk is updated,the partition table will be updated to the OS,x to enhance ║
║    │    │-hup:to flush the removable disk; -ahup:to flush the disk; -iv=n:to extract the item n#.     ║
║    │    │-fs0: Not pop "unformatted" message window for a newly-created partition,No DrvLetter.       ║
║    │    │C:H:S indicates HeadsPerCylinder:SectorsPerHead:SectorSize  -dvol:Return Fix-Dyn-VolumeGUID  ║
║    │    │Disk:from hd0 to hdN,hd0 by default,the leading character hd can be absent for this type.    ║
║    │    │Part:1~4.indicating the physical ID for the 4 main partition items in the partition table.   ║
║    │    │     It is settled and different from the logical ID used for mounting,which is not settled. ║
║    │    │     If the partition table is null or it is an extended partition,there will be no ID for   ║
║    │    │     operating(creating)it; If the preceding partition becomes null,the ID number will be    ║
║    │    │     subtracted by one.If the position and length of the partition are different from the    ║
║    │    │     original ones,only after the partition is hidden or deleted can the partition item be   ║
║    │    │     modified.See appendix.                                                                  ║
║    │    │     +L:to add a logical partition at the end of the extended partition.                     ║
║    │    │     -L:to delete the last logical partition of the extended partition.                      ║
║    │    │     If the partition ID is the physical ID for the logical partition(>=5),it is practicable ║
║    │    │     to modify its activation,type,start and length.                                         ║
║    │    │[*][a|-a]: a indicates activation; -a:to remove the activation.  *:one active.               ║
║    │    │type:The type of a partition,0~255.0:hidden totally,unrecognized by partition tools and OS.  ║
║    │    │     If the partition is assigned with a new type,the partition can be put in use right away ║
║    │    │     .If <0 or absent,it remains unchanged. Disk,Part,type,start and len can be in hex.      ║
║PART│    │start:the starting position on the disk.The starting byte of the disk is 0.The disk capacity ║
║    │    │     is the multiple of 512 bytes(automatically contracted and aligned internally).          ║
║    │    │     It can be 0.If <0 or absent,it remains unchanged.- indicates figuring out the end of    ║
║    │    │     the last partition using "list",and any ajustment to the alignment of the end will not  ║
║    │    │     have an effect on "len".For a logical partition,the suffix + can be added indicating    ║
║    │    │     skipping a certain length.                                                              ║
║    │    │len: It can be 0.If <0 or absent,it remains unchanged.Start_0/len can be followed by the     ║
║    │    │     unit suffix TGMKS.K:1024 bytes,S:512 bytes.                                             ║
║    │    │del: to delete the partition thoroughly.                                                     ║
║    │    │     The command to delete is: PART del [Disk]#Part or PART [Disk]#Part -a 0 0 0             ║
║    │    │init:to initialize the GPT/MBR partition.                                                    ║
║    │    │fix:to fix GPT partition Table (checksum,flag).                                              ║
║    │    ├─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │[x]update [-axup] [Disk]:to update the partition table to OS,x to enhance.Disk 0 by default. ║
║    │    │hupdate [-ahup] [-up] [Disk]:to hard-flush the partition table(to u disk).Disk 0 by default. ║
║    │    ├─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │list disk:to list all the partitions if Disk is absent.If present,to return such information ║
║    │    │          of the disk as:DiskID,Size,CylinNum,HeadNum,SetorNum,SectorSize,MediaType,         ║
║    │    │          Sign(Hex),BusType,PartType,RemvFixDisk.                                            ║
║    │    │list part:[Disk] hd0 by default,to list all the partitions if Part is absent(-:null,@:       ║
║    │    │          extended partition).If present,to return such information of this partition as:    ║
║    │    │          PartID,Type,BootMark,BaseOffset,Size,HideSectorNum,End,DrvLetter.                  ║
║    │    │          -hextp:type of hex 0xNN. -phy:partition in physical ID,4 main partitions 1-4,and   ║
║    │    │          logical partitions 5-N.-phy#:to export physical ID.                                ║
║    │    │          -fill:There is a placeholder * if no drive letter is assigned.                     ║
║    │    │          The partition information of GPT is returned as follows:                           ║
║    │    │          PartID,TypeGUID,GPT,BaseOffset,Size,Attr,PartGUID                                  ║
║    │    │list drv: The drive letter in the outcome of this command is basically the same as the one   ║
║    │    │          of "list part",except that a disk ID is added at the end of its outcome.           ║
║    │    │VarName:  to return the outcome of query.                                                    ║
║    │    ├────────────────────────────────────────────GPT──────────────────────────────────────────────╢
║    │    │"MS Basic Data" partition by default,Attr:0.+ before "Part" indicates the insertion mode,the ║
║    │    │original partition is moved backwards once.Physical ID:1~128.                                ║
║    │    │-cmp:to compress the null item in the partition table(otherwise unrecognized by DG yet its   ║
║    │    │use is not affected).                                                                        ║
║    │    │Attr:                                                                                        ║
║    │    │0x1000000000000000:Read-only       0x2000000000000000:shadow  0x4000000000000000:hide        ║
║    │    │0x8000000000000000:no drive letter 0x0000000000000001:dispensable partition in  PC           ║
║    │    ├─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │/mbr:to rewrite MBR,nt6(win) by default.FileName can be specified.The file cannot be too     ║
║    │    │large.FileName beginning with # indicates the resource number in EXEDATA.                    ║
║    │    │LenLimit refers to the utmost necessary length to read from the front of the file.The second ║
║    │    │* can be absent if there is no confusion,for example,if there exists #.                      ║
║    │    ├─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │/pbr:to rewrite PBR,nt6(win) by default.FileName can be specified.The file cannot be too     ║
║    │    │large.FileName beginning with # indicates the resource number in EXEDATA.                    ║
║    │    │LenLimit refers to the utmost necessary length to read from the front of the file.The second ║
║    │    │* can be absent if there is no confusion,for example,if there exists #.                      ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│PART  1             //to fix the valid mark for the partition table in disk 1.               ║
║    │    │PART  1#3  a        //1#3 to activate the partition.                                         ║
║    │    │PART  1#3  -a       //1#3 to cancel the activation of the partition.                         ║
║    │    │PART  1#3  0x17 1048576000  2097152000  //100M+200M partition 1#3,hidden NTFS.               ║
║    │    │PART  1#3  0x17     //to hide 1#3 partition.                                                 ║
║    │    │PART  1#3  0x7      //unhide 1#3 partition.                                                  ║
║    │    │PART  1#3  -a 0     //to hide completely,unrecognized by other partition tools or OS.        ║
║    │    │PART  1#3  -1 -1 1048576000 //to ajust to 100M,it is actually needed to contract the size of ║
║    │    │                              the file system first or enlarge it afterwards.                ║
║    │    │          (eg:1.To ajust from 100M to 50M:1)contract the size of the file system first;      ║
║    │    │                                          2)contract the size of the partition using Part.   ║
║    │    │              2.To ajust from 50M to 100M:1)enlarge the size of the partition using Part;    ║
║    │    │                                          2)enlarge the size of the file system afterwards.) ║
║    │    │PART  1#3  -a 0 0 0 //to delete the partition without influence its data,and remapping and   ║
║    │    │                      mounting is practicable.                                               ║
║    │    │PART  del  1#3      //to delete the partition,without influence its data,and remapping and   ║
║    │    │                      mounting is practicable.                                               ║
║    │    │PART  /MBR=*63s#5 0 //to write resource No.5 in EXEDATA into MBR of disk 0,63 sectors        ║
║    │    │                      at most.                                                               ║
║    │    │PART  /MBR=*63s*%CurDir%\MBROS.MBR  1  //%CurDir%\MBROS.MBR to write into MBR of Disk 1,     ║
║    │    │                                         63 sectors at most.                                 ║
║    │    │PART  1#5 a  0x7    //to unhide and activate the logical partition 1#5.                      ║
║    │    │PART  -super -force -clear -up -hup  1#2 -a 5 2.5G  3.5G //to create extended partitions.    ║
║    │    │      -clear:unrecoverable.                                                                  ║
║    │    │PART  -up 1#+L   0x7  +32256  57544704 //to create a logical partition at the end of the     ║
║    │    │                                                                       extended partition    ║
║    │    │PART  -up 1#-L      //to delete the last logical partition.                                  ║
║    │    │PART  -up -super -gpt -cmp 1#+1 {EBD0A0A2-B9E5-4433-87C0-68B6B72699C7}   1G   5G             ║
║    │    │      {BC65AB2C-B5AF-4197-92B2-00E808FDEE09}    0x9000000000000000  "Basic data partition"   ║
║    │    │PART  -up -super -gpt -cmp del  1#2  //to delete the GPT partition without influence its     ║
║    │    │                                       data and remapping and mounting is practicable.       ║
║    │    │PART  -up -super -gpt -cmp 1  //to compress the GPT partition table only,making partition ID ║
║    │    │                                successive starting from 1.                                  ║
║    │    │PART  -super -up -swap:2 3#1   //3#1 swap with 3#2                                           ║
║    │    │PART  -up -hup -super -force -mbr init 1 //to initialize into MBR; -gpt:into GPT.            ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼Disk operation,belonging to the ones of system level,is very dangerous,so be cautious!      ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'PATH'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│PATH [#|@]DirName                                                                            ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To set the current working directory for PECMD.EXE,create or delete a directory.             ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║PATH│PARA│■DirName                                                                                     ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│PATH %CurDrv%\outpart                                                                        ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼"@" indicates setting the current directory for PECMD.EXE so that the relative path can be  ║
║    │    │  adopted by the commands of EXEC,DEVI and so on to shorten the length of the command line.  ║
║    │    │☼"#" indicates deleting a directory.Notice that this operation is also likely to delete a    ║
║    │    │  file with the same name.                                                                   ║
║    │    │☼If "@" and "#" are absent,PATH is used to create a directory(multilevel).                   ║
║    │    │☼Be cautious to use Path with the leading character "@" in a config file,which is likely to  ║
║    │    │  result in disorders.                                                                       ║
║    │    │☼If the param is absent,the current default directory of PECMD.EXE(%SystemRoot%\SYSTEM32)    ║
║    │    │  will be restored.                                                                          ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'PBAR'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│PBAR [*] [-smooth] <PrgBarName>,<PrgBarShape>,[PrgBarPrg][,[#Color:]Txt]                     ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To create a progress bar in the window defined by _SUB.                                      ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│  * before <PrgBarName> indicates being recycled before quitting the block or function.      ║
║    │    │■PrgBarName:string,should be unique and not the same as those of other controls or           ║
║    │    │  environment variables.                                                                     ║
║    │    │■PrgBarShape:the position and size of the progress bar.The format is:<L(left)T(top)W(wide)   ║
║    │    │  H(high)>.L,T,W and H are respectively followed by corresponding numbers.                   ║
║PBAR│    │■PrgBarPrg:float(1~100),to initialize the progressive percentage of the progress bar,0 by    ║
║    │    │  default.                                                                                   ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│PBAR Pbar1,L360T11W428H16,0                                                                  ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼PBAR is generally located between _SUB and _END.                  Refer to _SUB and CALL.   ║
║    │    │☼To set the progress and text of the progress bar,use "ENVI @PrgBarName=Prg[;[#color:]Txt]"  ║
║    │    │  See ENVI; If the value is set as -1,the progress bar will be hidden and numbers >100 will  ║
║    │    │  be ignored.                                                                                ║
║    │    │☼Use "ENVI @PrgBarName.Visible=Num" to set its visibility.0:invisible,not 0:visible.         ║
║    │    │☼Use "ENVI @PrgBarName.color=color" to set the color of text.                                ║
║    │    │☼Use "ENVI @PrgBarName.percent=[-]smooth" to switch to the smooth mode.                      ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'PCIP'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│PCIP [IPAddr],[SubnetMask],[DeftGtway],[DNSAddr],[NetcardSN|NetcardName][,NetcardStat]       ║
║    │    │                                                                             //static IP     ║
║    │    │PCIP -,[-],[-],[DNSAddr],[NetcardSN|NetcardName][,NetcardStat]               //dynamic IP    ║
║    │    │PCIP ?[*][IPName],[SubnetName],[GtwayName],[DNSName],[NetcardSN][?][NetNameName][,MACName]   ║
║    │    │     [,LinkName][,DHCPName][,bDHCP][,Status][,Media][,Desc][,Type] //to query. *:Real val    ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To set the IP address for the computer.Format 1 for static IP(all param cannot be absent);   ║
║    │    │Format 2 for dynamic IP(DNS can be specified).                                               ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │☼PICP should be closely followed by params: *safe:conserved version; *qk:version quicker     ║
║    │    │  than NT5.x normal OS; *qkos:quick version(default).The three versions should be used in    ║
║    │    │  coordination. *fresh:to refresh by force(default),*nfresh:not to refresh.*sfsw:to switch   ║
║    │    │  from NT5.x DHCP to static IP,reliable but slower.*all:all netcards,otherwise ethernet and  ║
║    │    │  wireless net.*cah: &CacheName                                                              ║
║    │PARA│■IPAddr:string in the form of IP indicating the IP address of net,being absent indicates     ║
║    │    │  not modifying the IP address,"-" indicates automatically obtaining the IP address;         ║
║    │    │■SubnetMask:string in the form of IP indicating the mask for subnet.Being absent indicates   ║
║    │    │  not modifying the subnet mask.IP being "-" indicates automatically obtaining the subnet    ║
║    │    │  mask.Multi-IP and multi-mask are supported,separated by "; ",":" or "&".Multi-IP should    ║
║    │    │  be corresponding to multi-mask.See examples.                                               ║
║    │    │■DeftGtway:string in the form of IP indicates the gateway address.Being absent indicates     ║
║    │    │  not modifying it.IP being "-" indicates automatically obtaining the gateway address.       ║
║    │    │■DNSAddr:string in the form of IP indicates the DNS address.The preferential DNS and spare   ║
║    │    │  DNS are linked with"; ", "&" or ":".Being absent indicates not modifying the DNS address.  ║
║PCIP│    │  "-" means automatically obtaining the address of the DNS server. ',' should be transfered  ║
║    │    │  to a variable.If IP,SubnetMask,DeftGtway and DNS are 0.0.0.0,it indicates 0 clearing,used  ║
║    │    │  in the first setting.                                                                      ║
║    │    │■NetcardSN:number,can be absent,default 0 means the first netcard,1 the second,2 the third   ║
║    │    │  and the like;                                                                              ║
║    │    │■NetcardName:to be queried beneath {D8D9826A-332E-4858-9306-374EC20A9F05}                    ║
║    │    │  HKLM\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318},      ║
║    │    │  It also can be netcard description like Intel 8255x-based PCI Ethernet Adapter (10/100),   ║
║    │    │  MAC address,like 00-00-3D-46-34-D7 or 00:00:3D:46:34:D7 and "=LinkName" like =local link.  ║
║    │    │■NetcardStat:number,used for operating the serviceability of the netcard.0:disabled,         ║
║    │    │  1:enabled,fresh:disabled and enabled.Absent,no operation to it.                            ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│PCIP 192.168.1.2,255.255.255.0,192.168.1.1,192.168.1.1 or PCIP -,-,-,-,,                     ║
║    │    │PCIP ,,,192.168.1.1;10.2.22.1,,1 or PCIP ,,,,,1 //to enable the netcard or                   ║
║    │    │PCIP ,,,,,0                                     //to disable the netcard.                    ║
║    │    │PCIP ? IP,MASK,GW,DNS,0?NAME,MAC,LINK   //multi IP multi DNS,separated by space or           ║
║    │    │PCIP *fresh                                     //to refresh.                                ║
║    │    │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 //multi IP  ║
║    │    │PCIP 192.168.1.2,255.255.255.0,0.0.0.0,0.0.0.0  //set GW,DNS as 0.0.0.0 anyway.              ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼This command may be ineffective if the netcard driver is not installed,the netcard is       ║
║    │    │  disabled or the OS does not support the network;                                           ║
║    │    │☼This command contains many params,as are usually applied in example 1(no enabling           ║
║    │    │  operation when IP for the first netcard is set) or in example 2(to automatically obtain IP ║
║    │    │  and DNS).                                                                                  ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'PINT'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│PINT [-TaskBand|-StartMenu] [*MenuDLLFileName,]<FileName>,[MenuName|MenuID|#StrID]           ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To pin EXE or LNK file to "StartMenu" or "TaskBar".For NT5.x OS,only "StartMenu" is          ║
║    │    │supported.                                                                                   ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■FileName:the name of EXE and LNK files,containing its path and extension,supportive of      ║
║    │    │  environment variables interpretation;                                                      ║
║    │    │■MenuName:string corresponding to the right click menu of EXE and LNK file,like "pinned to   ║
║    │    │  StartMenu(&U)" and "locked to TaskBar(&K)";                                                ║
║    │    │  It is suggested only keeping the front part without the hotkey mark "U)";                  ║
║    │    │■MenuID:like "[-]StartMenu" or "TaskBar",the former indicates being pinned to "StartMenu"    ║
║    │    │  and the latter "TaskBar".[-]:to separate;                                                  ║
║    │    │■StrID:number,the resource string ID in SHELL32.DLL for "pinned to StartMenu" and "locked    ║
║    │    │  to TaskBar".#5382:to separate from "StartMenu".                                            ║
║PINT├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│PINT %SystemRoot%\Regedit.EXE,StartMenu or PINT %SystemRoot%\Regedit.LNK,pinned to StartMenu ║
║    │    │PINT %SystemRoot%\Regedit.EXE,TaskBar or PINT %SystemRoot%\Regedit.LNK,locked to TaskBar(&K) ║
║    │    │PINT %WinDir%\System32\calc.exe,#5381 or PINT %WinDir%\System32\calc.LNK,#5386               ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼This command should be supported by the system function.In some simplified OS,XP and 2003   ║
║    │    │  OS,it is likely that the command cannot fulfill its function because of the simplification ║
║    │    │  or defficiency of related system function;                                                 ║
║    │    │☼Only one of the three params "MenuName","MenuLabel" and "StrID" is employed.If all absent,  ║
║    │    │  it indicates pinning to "StartMenu".The three params vary with systems.It is suggested     ║
║    │    │  being indicated as "MenuName" of the system(like "pinned to StartMenu(&U));                ║
║    │    │☼Other items of the system right click menu can be theoretically applied to "MenuName" to    ║
║    │    │  fulfill some functions,like using "Open(&O)" to open files.                                ║
║    │    │☼For win10,if pecmd is copied to its path.Dir\Exporer.exe,it will be put into use.Or else    ║
║    │    │  if there exists no such non-zero dword key as HKLM\SoftWare\PELONGON\USRCF\NOTMPEXPLORER,  ║
║    │    │  explorer.exe will be temporarily created and put into use.If there exists no such non-zero ║
║    │    │  dword key as HKLM\SoftWare\PELONGON\USRCF\NODELAYEXPLORER,explorer.exe will delay its      ║
║    │    │  operation of TaskBand on demand.Such can be configured as the front part of corresponding  ║
║    │    │  MenuName of Win10 StartMenu:pecmd path.WIN10FromStartMenu,pecmd path.WIN10ToStartMenu,HKLM ║
║    │    │  \SoftWare\PELONGON\USRCF\ WIN10FromStartMenu, WIN10ToStartMenu,WIN10FromTaskBand,          ║
║    │    │  WIN10ToTaskBand and PECMD 5381/5382 strings. Can place in path.USRCFG.INI                  ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'PUTF'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│PUTF[*][.][#] [-16] FileName,[StartPos[#LenLmt]],<DataQue|PEVarName|#[.]InternlDataID[|Dir]> ║
║    │    │PUTF -dd [-bs=BS] [-ibs=BS] [-obs=BS] [-count=COUNT] [-len=LEN] [-skip=SKIP] [-skipb=SKIPB]  ║
║    │    │    [-conv=notrunc] [-quick|-qspace] [-va] <FileName>,[ExportStartPos],InFileNameOrInt64     ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To modify the data of a specified file in BINARY.The suffix # means source is a PE Var, with ║
║    │    │  two extra bytes of zero permitted to be written in at most.                                ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■FileName:the existing file name,supporting environment variables interpretation; -16:data   ║
║    │    │  queque in hex.    -v: Write PE_VAR                                                         ║
║    │    │■StartPos:number,a starting position relative to the base address of the file,hex supported  ║
║    │    │  ,like 0x100; It starts from default 0 and can be followed by the suffix TGMKS.             ║
║    │    │  #LenLmt being absent indicates all data.                                                   ║
║PUTF│    │■DataQue:[*ReptFactor] number,the data to write in from the starting position.Numbers are    ║
║    │    │  separated by space,like *1M 0x00 0x23 0xAD *1K 0x1C 128.The internal data ID of the        ║
║    │    │  resource lies beneath "EXEDATA"; "." indicates not automatically extracting.               ║
║    │    ├─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │ Format 2 refers to the mode of high speed binary block delivery.BS:the number of bytes in a ║
║    │    │ block.COUNT:the number of blocks.SKIP:the starting number of blocks of the file to input.   ║
║    │    │ SKIPB:the starting number of bytes of the file to input which can be followed by TGMKS.     ║
║    │    │ FileName is permitted not to be in existence.-conv=notrunc:not to shorten the existing file ║
║    │    │ The file name to input can be zero,which indicates 0 clearing.                              ║
║    │    │ -quick:sparse file.-qspace:to allocate space quickly. -va:not initiated space.              ║
║    │    │ Logical drive A:-Z:, CDROM \\.\CDROM0~N, tape \\.\TAPE0~N, disk \\.\PhysicalDrive0~N,       ║
║    │    │ NUL:a dummy file.LEN:length in number of bytes,prior to COUNT.                              ║
║    │    │ -fd=HNNDLE: accelerate output                                                               ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│PUTF %CurDir%\Memu.DAT,0x400,0x23 0xAD 0x1C 0x80 0x6F or PUTF* A.DAT,,#100                   ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼The command of PUTF modifies the starting position of the file relative to its base         ║
║    │    │  address in a way of overwriting without changing the length of the file,but the length of  ║
║    │    │  the new file will not be limited.New file as it is,if the specified starting position is > ║
║    │    │  1 or far beyond the end of the file,a hole will be left in between(It does not occupy any  ║
║    │    │  space in some advanced file system like NTFS,nor does it have any bad influence); PUTF*    ║
║    │    │  can expand the file.The suffix "." indicates directly writing into a text(ANSI).           ║
║    │    │☼The corresponding command to read a file in BINARY is GETF.LenLmt is only applicable to PE  ║
║    │    │  variable name and internal data ID.                                                        ║
║    │    │☼The command to read or modify a file in string is READ and WRIT.                            ║
║    │    │☼The resource can be indicated as:"[FileName]""#RescName[|DirName]".The couple of "" behind  ║
║    │    │  can be absent.RescName can be non number characters at this moment.                        ║
║    │    │☼Supportive: \\?\Harddisk0Partition2\A.TXT   \\?\HarddiskVolume5\A.TXT  \\?\ImDisk0\A.TXT    ║
║    │    │☼FileName leading with & is PE_VAR.                                                          ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'RADI'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│RADI [-right -center -scale[:[SzH][[<sW:sH>]:Pic]]] [*] Name,Shape,Title,Event,[Sta],[GrpID] ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To create a radio in the window defined by _SUB.                                             ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│  * before <RadioName> indicates being automatically recycled before quitting the block or   ║
║    │    │  function.                                                                                  ║
║    │    │■RadioName:string,should be unique and not the same as those of other controls or            ║
║    │    │  environment variables.                                                                     ║
║    │    │■RadioShape:the position and size of the radio.The format is <L(left)T(top)W(wide)H(high)>,  ║
║    │    │  L,T,W and H are respectively followed by corresponding numbers.                            ║
║    │    │■RaidoTitle:characters on the radio to describe its functions or instructions of the radio.  ║
║    │    │■RadioEvent:command to execute when the radio is clicked,a valid one supported by PECMD.     ║
║RADI│    │■RadioStatus:number,1 or -1:checked; 0,2 or -2:unchecked; <0:disabled; ±16:invisible.        ║
║    │    │■RadioGroupID:number,0 by default.Raidos can be divided into groups,in which a radio can be  ║
║    │    │  selected out of all without mutual influence among the groups.                             ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│RADI RadioButton1,L32T314W100H20,unload WimShExt.DLL,ENVI @Group1=%RadioButton1%,1,1         ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼RADI is generally located between _SUB and _END.                  Refer to _SUB and CALL.   ║
║    │    │☼To set RadioTitle,use "ENVI @RadioName=RaidoTitle".                        Refer to ENVI.   ║
║    │    │☼Use "ENVI @RadioName.Check=Num" to set the status.0:unchecked; 1:checked.2:toggle           ║
║    │    │☼Use "ENVI @RadioName.Enable=Num" to set its serviceability.0:disabled; not 0:enabled.       ║
║    │    │☼Use "ENVI @RadioName.Visible=Num" to set its visibility; 0:invisible,not 0:visible.         ║
║    │    │☼Use "ENVI @CtrlName.*del=" to delete.   -scale:Internal scaling.                            ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'RAMD'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│RAMD [P percentage of memory] [LMini] [HMax] [FSurplus]                       <===old format ║
║    │    │RAMD <DrvName>[,DiskSize][,DiskFormat][,DrvLetter][,DiskVol][,CompMark][,Opt] <===new format ║
║    │    │RAMD ImDisk*[VarName] [*[Offset]*Size*[Ctrl]*Devi] [--[f]ins [-rmeu-]] -a -t Type -m LodPint ║
║    │    │     [-n][-o op1[,op2 ...]] [-f|-F SrcFileDeviName][-s Size] [-b Offset] [-v PartID]         ║
║    │    │     [-S SectSz] [-u ImDiskID] [-x 1 TrackSectNum] [-y 1 CylinTrackNum] [-p "format Param"]  ║
║    │    │RAMD ImDisk*[VarName]  -e [-s Size] [-o opt1[,opt2 ...]] [-u ImDiskID | -m LoadPoint]        ║
║    │    │RAMD ImDisk*[VarName]  -d|-D [-u ImDiskID | -m LoadPoint]                                    ║
║    │    │RAMD ImDisk* -BD -m Driver [--remove] [--nbrd]               <===notify to add/remove driver ║
║    │    │RAMD ImDisk*[VarName]  -l [--id] [-u ImDiskID | -m LoadPoint]      <===ImDisk full format    ║
║    │    │RAMD ImDisk* -gui                                                  <===ImDisk graphic mode   ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNX│To set the size of RamDisk and return the outcome to a variable.[See ImdiskHelp.txt]         ║
║    │    │LoadPoint:driver letter or directory                                                         ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║RAMD│PARA│■DrvName:Ramdriv or ImDisk; The unit for both Max and Mini is MB.                            ║
║    │    │■DiskSize:The unit is MB,defined with Pxx Lyy Hzz,xx:percentage of available memory,         ║
║    │    │  yy:minimum,zz:maximum;                                                                     ║
║    │    │■DiskFormat:supportive of FAT,FAT32 and NTFS.If set,the disk will be formatted according to  ║
║    │    │  the params; If absent,not formatted.                                                       ║
║    │    │■DrvLetter:the drive letter assinged to ImDisk.If the driver of Ramdriv is adopted,it        ║
║    │    │  should be absent together with "DiskVol";                                                  ║
║    │    │■DiskVol:the volume to set when the disk is formatted with the driver of ImDisk.             ║
║    │    │■CompMark:1:NTFS compression; 0 or null:no compression.                                      ║
║    │    │■Opt: 0x1 bit:Being 1 indicates physical memory mode,only intended for Imdisk.               ║
║    │    │■Ctrl:0x1 bit:writable.0x10:self-unload upon shutdown.0x20:all self-unload upon shutdown.    ║
║    │    │  0x40:to disable self-unload. 0x100/0x200:with/without many w-mount for this disk           ║
║    │    │  --nbrd:not to broadcast the drive letter in ImDisk full format.                            ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│RAMD P20 L32 H64                                                                             ║
║    │    │RAMD ImDisk,L64,NTFS,B:,ImDisk1[,1,1] or RAMD Ramdriv,P20L32H64                              ║
║    │    │RAMD ImDisk*ret*2097280s*5734529s*0*\\.\PhysicalDrive0  -a  -o hd -m Z:     //sector mapping ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │The three params can be used separately.Eg,when RAMD P10 is used,10% of the memory will be   ║
║    │    │set as RamDisk.                                                                              ║
║    │    │☼When Ramdriv is used,the disk will be assigned a drive letter and formatted by the driver   ║
║    │    │  of Ramdriv and When ImDisk is used,by PECMD;                                               ║
║    │    │☼When the driver for ImDisk is used,this command can be employed to expand a specified       ║
║    │    │  virtual disk like RAMD ImDisk,L128,NTFS,B:,ImDisk2.                                        ║
║    │    │☼Pxx Lyy Hzz can be used separately.The minimum limited by PECMD is 1M and the maximum is    ║
║    │    │  (2GB for OSx86,32GB for OSx64);                                                            ║
║    │    │☼Mount WIM in the physical memory mode(RAMD ImDisk,L64,NTFS,B:,ImDisk1,,1).For FAT32,the     ║
║    │    │  size of the disk cannot be too small;                                                      ║
║    │    │☼If the command is executed successfully,the environment variable of the process             ║
║    │    │  %CurRamDisk% will return the drive letter,and it can be set as a system one with the       ║
║    │    │  command of ENVI as you need.                                                               ║
║    │    │☼Inner IMDISK needs cabinet.DLL.                                                             ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'RAND'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│RAND [VarName]                                                                               ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To return a random number.                                                                   ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■VarName:to store the random number,RANDOM by default.Practically %RANDOM% works without     ║
║    │    │  using the command of RAND.                                                                 ║
║RAND├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│RAND CurRand                                                                                 ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │The outcome of the example is likely to be "14935321432143".                                 ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'READ'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│READ[-UNICODE|-UNICODEB|-UTF8] [*fix] <FileName>,[ReadPos[+LineNum]],[VarName]               ║
║    │    │READ [*fix] [-[*]],<ReadPos[+LineNum]>,<VarName>,<ContentRead|ContentReadVarName>            ║
║    │    │READ [*fix] --,<ReadPos[+LineNum]>,<VarName>                                                 ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To read the data of a specified file in string(line).Other code:-GBK -BIG5 -UNI -UNIBE -ANSI ║
║    │    │-CodeNum                                                                                     ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■FileName:an existing file,supporting environment variables interpretation; *fix:a separate  ║
║    │    │  ENTER is treated as the newline(encrypted BAT/CMD).                                        ║
║READ│    │■ReadPos:the line ID,<0 indicates reading the number of lines; 0 indicates the last line;    ║
║    │    │  Other numbers indicate reading the specified line,hex numbers supported,1 by default.      ║
║    │    │  * or ** or *r indicates all lines; * indicates the newline serving as the interval; *r     ║
║    │    │  indicates the newline via ENTER as the interval,both of which can be mutually converted.   ║
║    │    │  ** indicates the newline of the primitive content.The number of lines is 1 by default,and  ║
║    │    │  0 indicates reading to the end.                                                            ║
║    │    │■VarName:a string to store the outcome of reading.READLINE by default.                       ║
║    │    │■ContentRead:to read from the content of the multiline string,which is generally obtained    ║
║    │    │  by EXEC* or assembled by ENVI.FileName is - or absent or -* at this time.-* indicates this ║
║    │    │  being VarName to read(?check code).-UNICODE -UNICODEB -UTF8 are the file encoding,which    ║
║    │    │  can be simplified as -UNI -UNIB.If BOM exists,the encoding is based on BOM.                ║
║    │    │■Format 3:to read from the standard input.Generally,the position is 1 and one line is read   ║
║    │    │  each time.                                                                                 ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│READ %CurDir%\Memu.LST,10,CurLine or READ %CurDir%\Memu.LST,0,LastLine                       ║
║    │    │READ  -,10,Line,%&MSG%    or    READ  -*,10,Line,&MSG                                        ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼READ is only applicable to reading a pure text file like the menu config file.To read the   ║
║    │    │  the primitive content of a file,use the command of GETF.                                   ║
║    │    │☼Supportive of UD files: ud:UD FileName:UD internal file name.                               ║
║    │    │☼Supportive: \\?\Harddisk0Partition2\A.TXT   \\?\HarddiskVolume5\A.TXT  \\?\ImDisk0\A.TXT    ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'RECY'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│RECY <PartID>,<MaxCapacity>                                                                  ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To set the recycle bin of Windows system,like XP/2003/VISTA/Windows7 and their WinPE system. ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■PartID:indicated as a drive letter or "*:\".The drive letter indicates a specified          ║
║    │    │  partition and "*:\" all partitions."\" can be absent.                                      ║
║RECY│    │■MaxCapacity:number,indicating the maximum space of the recycle bin.In NT5.x system,it is    ║
║    │    │  indicated as a percentage while in NT6.x system as the capacity with a unit of MB;         ║
║    │    │  If it is 0,the recycle bin in the specified partition will be disabled and the deleted     ║
║    │    │  files will not be transfered to the bin.                                                   ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│NT5.x OS: RECY D:,10 or RECY E:,0 or RECY *:,0         NT6.x OS: RECY C:,2048 or RECY D:\,0  ║
║    │    │or RECY *:\,0                                                                                ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼In NT5.x OS,if the MaxCapacity exceeds 30,PECMD will adopt the default 10; In WinPE,it is   ║
║    │    │  suggested putting this command behind INIT.                                                ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'REGI'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│REGI [--a[v|k]] [LeadChr]<HKLM|HKCU|HKCR|HKU|HKCC><\SubItem\\><KName,VName>[,TypeVName]      ║
║    │    │REGI [--name] [--0] [--16] [LeadChr]<HKLM|HKCU|HKCR|HKU|HKCC><\SubItem\\>[[KName][Operator]  ║
║    │    │     [[TypeChr]DataVal]]                                                                     ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To read,set or delete the data in registry.  --name DataVal is VarName                       ║
║    │    │--k:only to create a key  --byte:byte stream  --v[-]:Not Save(-Not Auto.)  --qk:quick        ║
║    │    │--init: Get empty on fail   --a[v|k] List all[Val|SubKey]   --r10:dec out  -su:super-right   ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■Leading characters  "$","+","#","@","*" or "**" or "*$","~" or "~~" indicate reading        ║
║    │    │  resepctively the data of REG_SZ,REG_DWORD,REG_BINARY,REG_MULTI_SZ and REG_EXPAND_SZ in the ║
║    │    │  registry.They indicate types of data when writing into the registry.                       ║
║    │    │  ~~ indicates reinterpretating the environment variables in the data of the registry.       ║
║    │    │  ** indicates the substring "\0" will be interpreted as "\\0" when reading and *$ refers to ║
║    │    │  a multiline string,but when writing,the substring "\\0" will be saved as "\0" and *$       ║
║    │    │  indicates saving the multiline string as parts separated by "\0",a separate line for each. ║
║    │    │  When reading,there are 2 types:.indicates the arbitrary type and can be followed by        ║
║    │    │  TypeVarName; ? refers to the type of query(NI refers to the unset null value).             ║
║    │    │  "^","+","b","u","n" refer to the type of REG_LINK,REG_QWORD,REG_QWORD_BIG_ENDIAN,          ║
║    │    │  REG_MUI_SZ,REG_NONE,intelligently preposed.--t:numeric type,to directly specify any other  ║
║    │    │  type of data,which is the same as REG_BINARY.                                              ║
║    │    │■SubItemName:the full name of the registry entry beneath the selected ROOTKEY,also such      ║
║    │    │  form is directly adopted as HKEY_LOCAL_MACHINE.                                            ║
║    │    │■KeyName:the name of the key to operate.If absent,the default key will be operated.If the    ║
║    │    │  operator is "!" without "=",the whole subitem will be deleted.                             ║
║    │    │■VarName:to store the returned value.If there is a comma but no VarName,a default name       ║
║    │    │  RegDat will be adopted.No comma indicates setting or deleting the data of the registry.    ║
║REGI│    │■operator:The operator "!" indicates deleting the whole subitem; The operator "=" without    ║
║    │    │  data indicates deleting; The operator "=" with data indicates setting data.                ║
║    │    │■TypeChar:the type of data.Being absent indicates the type of string."#" refers to the type  ║
║    │    │  of REG_DWORD,like "#0x20"; "@":REG_BINARY,like "@23 34 90 255"."*":REG_MULTI_SZ,like       ║
║    │    │  "*string1\0str2\0\0"."~":REG_EXPAND_SZ,like "~%SystemRoot%\System32".It is strongly        ║
║    │    │  suggested using the leading characters to indicate the type of data to avoid being         ║
║    │    │  confused with a string.Priority is given to the leading characters.                        ║
║    │    │■DataVal:Null value of a string is indicated as "".The type of REG_DWORD and REG_BINARY is   ║
║    │    │  supportive of hex numbers.--16 coordinating with @# indicates hex.--0 coordinating with =  ║
║    │    │  indicates creating a null item and coordinating with \! indicates clearing the subitems,   ║
║    │    │  values and default values beneath it; The DataVal can be divided into several subitems     ║
║    │    │  --0:number N,1:to clear the default value,2:to delete all subitems,4:to delete all values. ║
║    │    │  multiple --0:N is permitted and the numbers can be added up,which means subitems are       ║
║    │    │  combined(like 1+4=5,1+2+4=7,ie,5 indicates the combination of subitem 1 and 4,while 7 of   ║
║    │    │  subitem 1,2 and 4).                                                                        ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│REGI HKCU\SOFTWARE\PECMD\Version=#1200 , REGI $HKCR\lnkfile\IsShortcut=                      ║
║    │    │REGI $HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Cache,IECache    ║
║    │    │TEAM SET Val=" cdcsd ,| SET PT=Software\"a ,| REGI $HKLM\%&PT%\\%&Val%=1\\2 ," //Super Mode  ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼This command is complicated,please refer to the instructions carefully.Example 3 shows      ║
║    │    │  reading the position of IE cache.                                                          ║
║    │    │To delete> REGI HKCU\abc=  or TEAM REGI HKCU\abc=|                                           ║
║    │    │Null string> REGI HKCU\abc="" or TEAM REGI HKCU\abc= | or REGI $HKCU\abc= //or other leading ║
║    │    │  characters for string (* ** ~ ~~).                                                         ║
║    │    │  or REGI HKCU\abc=%&NOTHING%  //%&NOTHING% as a variable of null.                           ║
║    │    │  If "" itself,the leading characters themselves or a purely null string is needed to be     ║
║    │    │  input,it can be transfered to a variable or a leading character can be employed to achieve ║
║    │    │  this.                                                                                      ║
║    │    │To input null characters at front,format 1> REGI $HKCU\abc=    123                           ║
║    │    │To input null characters both at front and back,format 2> TEAM REGI $HKCU\abc=    123    |   ║
║    │    │To input null characters both at front and back,format 3> REGI $HKCU\abc=%VAL%   // %VAL%    ║
║    │    │  contains any combination of null characters.                                               ║
║    │    │REGI --0 $HKCU\abc\! //to clear; REGI --0 $HKCU\abc= //to create a null item;                ║
║    │    │REGI --16 @HKCU\abc=313233 //hex                                                             ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'RPOS'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│RPOS[*] [*] [-case] [[*][~][VarName][,[~]LineVarName]=Char,Num,Str //prefix* for many        ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To return the position in which the specified "Char" appears counting from the right side of ║
║    │    │a "Str".* indicates VarName following behind.~indicates figuring out position from right.    ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■VarName:to store the outcome of the command;  -case:case sensitive.                         ║
║    │    │■Str:the string to check; any character or space permitted.                                  ║
║RPOS│    │■Char:the character to check,not case sensitive; any character or space permitted.Multiple   ║
║    │    │  characters will be treated in the substring mode.If the substring is",",it should closely  ║
║    │    │  follow = .                                                                                 ║
║    │    │■Num:to specify the number of times the character to check appears.                          ║
║    │    │■RPOS*:It is the SubStr to search for,ie the part between "=" and ",",any character or       ║
║    │    │  space permitted.                                                                           ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│RPOS iPos=a,2,123A56|1234A6|abcdef or RPOS iPos=a,3,123A56|1234A6|abcdef                     ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼If "Num" is smaller than 1,the command will return the position of the character to check   ║
║    │    │  from the left of the string,eg,the outcome of the example above is 4; If the returned      ║
║    │    │  outcome is 0,that means no specified character is found.                                   ║
║    │    │☼This command will treat the string in Unicode.The returned value of example 1 is 12 and     ║
║    │    │  example 2 is 4.The substring cannot contain ",",which can be treated as a character.       ║
║    │    │☼The character starting from the second one of the substring cannot be ",",but the first     ║
║    │    │  one and the character mode can be ",".It can be transfered to a variable in that case.     ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'RSTR'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│RSTR [*] <VarName><=><Nunm>,<Str>                                                            ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To cut out the specified number of characters from the right side of a specified "Str" and   ║
║    │    │return the outcome to a specified variable.            * indicates VarName following behind. ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■VarName:to store the outcome of the command;                                                ║
║RSTR│    │■Str:the source string,whose length is unlimited;                                            ║
║    │    │■Num:the number of the characters to cut out.                                                ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│RSTR aStr=2,1234567890 or RSTR aStr=5,1234567890                                             ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼If "Num" is smaller than 1 or exceeds the length of the source string,the returned outcome  ║
║    │    │  will be the whole source string(the same as the string copy);                              ║
║    │    │☼This command will treat the string in Unicode.The returned value of example 1 is "90",and   ║
║    │    │  example 2 is "67890".                                                                      ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'RUNS'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│RUNS <PrgmCMD>,<StartItemName>                                                               ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To set the startup item of Windows.                                                          ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■PrgmCMD includes various kinds of executable commands like EXE,CMD,BAT and so on with       ║
║    │    │  their params likely to be present.StartItemName is indicated in the form of characters.    ║
║RUNS├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│RUNS PECMD.EXE EXEC !%CurDrv%\outpart\DRIVER\STARTDRIVER.CMD,Install drivers.                ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼The existing command of REGI can fulfill the same function.Only because the command line    ║
║    │    │  of REGI becomes too long does this separate command of RUNS come into being for this       ║
║    │    │  function.                                                                                  ║
║    │    │  If there exists a single-byte English "," in PrgmCMD or StartItemName,it can be replaced   ║
║    │    │  with a Chinese double-byte one or transfered to a variable.                                ║
║    │    │☼This command is not applicable to the command line but to config file only.                 ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'SBAR'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│SBAR [-right -left -color:BkClr:ThumbClr:[*]Buddy]] [*] Name,Shape[,Info,CMD,Status          ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│To create a scrollbar in the window defined by _SUB.                                         ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│  * before <Name> : automatically recycled before quitting the block or function.            ║
║    │    │■Name:string,should be unique and not the same as those of other controls or environment var.║
║    │    │■Shape:the position and size of the slider.The format is <L(left)T(top)W(wide)H(high)>,      ║
║    │    │  L,T,W and Hare respectively followed by corresponding numbers.                             ║
║    │    │■Info:[StartVal][:EndVal][:InitVal][:PageSize].Default:0:100:0.                              ║
║SBAR│    │■CMD:the command to execute when it is clicked,a valid one supported by PECMD.               ║
║    │    │■Status:number,minus:disabled.0x10:invisible.0x40:horizontal.                                ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│SBAR SBAR1,L32T108W300H54,0:100:50:20,CALL OnSBAR1 %SBAR1%,0x40                              ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼It is generally located between _SUB and _END.                   Refer to _SUB and CALL.    ║
║    │    │☼Use "ENVI @Name.Enable=[#]Num" to set its serviceability,0:disabled; 1:enabled              ║
║    │    │  #:used in the subprocess.                                                                  ║
║    │    │☼USe "ENVI @Name.Visible=Num" to set its visibility; 0:invisible; not 0:visible.             ║
║    │    │☼Use "ENVI @Name.VAL=[CurVal][:InitVal][:EndVal][:PageSize]" to set the ValInfo.             ║
║    │    │☼Use "ENVI @Name.VAL=?[CurValName][:InitValName][:EndValName][:PageSizeName]" to query Info. ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'SCRN'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│SCRN [-win|-taskbar -desk -max -display:Name] [W,H,X,Y,TaskBarPos,DPIX,DPIY,ScalX,ScalY]     ║
║    │    │SCRN -cap[gui]  [[:fmt:]File],[#WinID|<x:y:R:B>[;SrcFile]] //CaptureScreen fmt as:image/png  ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To return the current width and height of the screen.-win:as large as a maximized window.    ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║SCRN│PARA│■VarName:to store the current width and height of the screen.  -desk:not scale               ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│SCRN ScrW,ScrH   SCRN ScrW,ScrH  or  SCRN -cap  a.bmp,0   or   SCRN -cap  win.bmp,#1181336   ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼VarName cannot be the same as the existing variable names.If the command ends up with an    ║
║    │    │  error,the returned outcome for the two variables will be null or 0.                        ║
║    │    │☼Capture:Capture if CountPosParam>=1.Save last if no PosParam or WindID.Left if no FileName  ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'SED'                                                                                        ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│SED [-[Lf:Lt:Rf:Stp]] [-ni] [-t[s]] [-ex] VarName[;TimesName]=[TimesSubs][:TimesSkip][Mark], ║
║    │    │    SearchRegularExpression,SubstituteSubstring,SourceString        //substitute.            ║
║    │    │SED [-ni] [-many] VarName[;TimesName][;LineName]=?[Times][:SkipS][MarkS],FindRegularStr,     ║
║    │    │    [SubNm1;SubNm2],SourceStr //query position 0:not found. -many/*: return many.-L:SplitLn  ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To substitute or search a regular expression. -t:translate character set.  -ts[1]:translate  ║
║    │    │string set(Chr(13) separated[whole]).  -ex [-ex [-ex]]:SourceString[RegStr[SubstituteStr]]   ║
║    │    │is a varname. -[Lf:Lt[:Rf]]for vector  -h[~]?LeadStr_UnlessHead[NotInclude]                  ║
║    │    │-e[~]?EndStr_UnlessTail[NotInclude] -f Exact_or_Discard                                      ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║SED │PARA│Mark:three characters,respectively corresponding to three strings behind. * indicates not    ║
║    │    │interpreting(left as the literal is), _ refers to a placeholder. -many/*return Many Pos      ║
║    │    │*ni:not case sensitive. \u:to shift to upper case, \l:to shift to lower case.                ║
║    │    │-[n1:n2]:vector operation. ~before VarName/LineVarName:to figure out position from right.    ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│SED &&V=3:1,[A-Z],=,NiHaoABC or SED &&V=?:1,[A-Z],,NiHaoABC or  SED -t &&V=0,[AB],ab,ABA13   ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │TimesSubs is 1 by default(0 for SubNmS),0 means all; TimesSkip is 0 by default.              ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'SEND'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│SEND [-gui[-m][-nfocus][-right|-left|-top]] [--ext] [--s] <KeyCode1[_|^]>[;KeyCode2]...      ║
║    │    │SEND -m  flag;dx;dy[;dat;[extdat]]                               //send mouse event          ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To simulate keys/mouse.--ext:EXTENDEDKEY --s:SILENT  //support: ;  , :  /  ' '               ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║SEND│PARA│■Virtual key code:like VK_NUMLOCK.Refer to the list of vitual keys behind and related        ║
║    │    │  programming materials for more.If KeyCode ends with "_",it only simulates the key being    ║
║    │    │  pressed down and "^" only simulates the key being up.Otherwise,it simulates both.          ║
║    │    │■KeyCode:Simple keys("a"~"z" or "0"~"9") can be indicated as letters directly; Other keys    ║
║    │    │  should be indicated with "#" followed by the virtual key code.                             ║
║    │    │  If KeyCode ends with "_",it only simulates the key being pressed down and "^" only         ║
║    │    │  simulates the key being up.Otherwise,it simulates both.                                    ║
║    │    │  The code without the leading character # and whose length is >=2 is supported,as well as   ║
║    │    │  the one beginning with 0x. The name strings of VK_ are also supported.                     ║
║    │    │■flag: 0x8000:absolute position. 1:Move.2/4:Press/Release left button. 8/0x10:Press/Release  ║
║    │    │  right button. 0x20/0x40:Press/Release middle button. 0x80/0x100:Press/Release X button.    ║
║    │    │  0x800:wheel button rolled. 0x4000:map to entrire virtual desktop. 0x100000:TouchScreen     ║
║    │    │  dx/dy:absolute/relative pos. dat:0 or 120 when wheel rolled and clicked. extdat:0 for now  ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│SEND #0x12_,#0x09_,#0x09^,#0x12^  or SEND   VK_NUMLOCK                                       ║
║    │    │SEND 0x12_,0x09_,0x09^,0x12^         //old format                                            ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │The example above is to simulate Alt+Tab.The KeyCode supports hex and decimal.               ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'SERV'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│SERV [-wait] [Switch][?RetVarName] [!]<SrvName>                                              ║
║    │    │SERV-create [?RetVNm] SvrName,binPath,Tp,Start,ErrCtrl,Depend,obj,pwd,DispName,Group,Tag     ║
║    │    │SERV-delete [-stop-] [?RetVNm] SvrName  //include stopping if no -stop-                      ║
║    │    │Switch: -boot -system -auto -demand -disabled -delayed-auto                                  ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To enable,disable or query service or drivers.                                               ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║SERV│PARA│■specified SrvName."!" means disabling the service,otherwise enabling.                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│SERV FBWF or serv-create imdisk,system32\drivers\imdisk.sys,1,2,0,,,,ImDiskVirtualDiskDriver ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │This command can be employed to enable the FBWF service(if installed) to enlarge the writing ║
║    │    │space of the system disk so that PE can be run from CDROM.                                   ║
║    │    │The returned outcome of query:ErrorCode ServiceType CurrentState ControlsAccepted            ║
║    │    │Win32ExitCode ServiceSpecificExitCode CheckPoint dwWaitHint dwProcessId dwServiceFlags       ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'SHEL'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│SHEL [-user|-sys] [-shel:"AutoCMD"]                                                          ║
║    │    │     <FileName(including path)|CMD beginning with TEAM or EXEC>[,PWBASEStr] [,TimesRetry]    ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To load the specified SHELL and lock it.  -user:forced to coordinate with MAIN -user.        ║
║    │    │-sys:forced to be the system Shell.                                                          ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■SHELL FileName(including path.Environment variables can be used)                            ║
║    │    │■The password should be letters and numbers,case sensitive.                                  ║
║    │    │■If PWBASEStr is absent,the automatic login will be initiated.The default TimesRetry is 3.   ║
║SHEL├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│SHEL %SystemRoot%\EXPLORER.EXE                                                               ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼The function of this command resembles EXEC $.Codes for shutdown in the process can be      ║
║    │    │  modified(to hook the function of "ExitWindowsEx").                                         ║
║    │    │☼This command is also capable of locking SHELL and automatically loading SHELL when it is    ║
║    │    │  killed.                                                                                    ║
║    │    │☼It is suggested using this command with HIDE so as to achieve a better effect.              ║
║    │    │☼This command is not applicable to the command line but to config file only.                 ║
║    │    │☼SHEL should be placed behind HOTK and HIDE.                                                 ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'SHOW'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│SHOW [=1] [-check] [-SKIP=Type] [-skiptp:Tp1;Tp2] [-skippt:hd1:lpt1;hd1:lpt2]                ║
║    │    │     [-from:DrvChr[Tbl]]    [*&-] [DiskPart],[UDrvChr[Tbl]],[TimeWait],[StartDrvChr[Tbl]]    ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To display removable disks,the hidden partitions on fixed disks or unmounted partitions      ║
║    │    │existing in the system and assign drive letters to them.                                     ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■&:local mode,unlikely to be seen by other processes.When mounting,* means lasting mounting  ║
║    │    │  and when unmounting,* indicates unmounting all.Otherwise it refers to the last mounting.   ║
║    │    │  - indicates unmounting.=1 indicates not mounting if mounted.-check:not to mount if NA.     ║
║    │    │■DiskPart:consisting of [HDNo or ID:PartNo or ID#PartNo].Either "HDNo" or "ID" is adopted.   ║
║    │    │  ♦HDNo:number,< 0 indicates hard disk,U disk and removable hard disk all;                   ║
║    │    │    0 refers to "hd0",1:"hd1",2:"hd2",3:"hd3",and so on;                                     ║
║    │    │  ♦ID:indicated as "F" or "U"."F" refers to the fixed hard disk,"U":u disk or USB removable  ║
║    │    │    disk;                                                                                    ║
║    │    │  ♦PartNo(logical):number,< "0" indicates all partitions without drive letters,"0":all       ║
║    │    │    visible partitions without drive letters,"1":the first partition,"2":second,"3":the      ║
║    │    │    third,and so on.Being absent or - indicates deleting.The one behind # refers to physical ║
║    │    │    partition number.1~4 as the main partitions and 5~N as the logical partitions.           ║
║SHOW│    │■DrvLetter:indicated as "A~Z",If absent or unproperly set,it will be automatically           ║
║    │    │  assigned.Chinese characters are permitted,which help settle the insuffiency of drive       ║
║    │    │  letters and keep secret(cannot be listed).They can be mounted or unmounted as is needed.   ║
║    │    │■TimeWait:number,indicating waiting for a certain period of time (ms)for devices getting     ║
║    │    │  ready to be assigned with drive letters.                                                   ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│SHOW 0:1,H or SHOW U:1,U or SHOW F:0 or SHOW U:0,,3000 or SHOW U:-1 or SHOW 0:-1 or SHOW     ║
║    │    │SHOW 0#1,H or SHOW 0:1 or SHOW 0#1 or SHOW - 0:1 or SHOW - 0#1                               ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼Computers of some types can recognize the removalbe hard disk after system starts up,yet    ║
║    │    │  has not assigned a drive letter to it.This can be fulfilled by using the command of SHOW   ║
║    │    │  with the identifier of "U".Example 2 shows assigning the drive letter "U:" to the first    ║
║    │    │  partition of the removable hard disk.                                                      ║
║    │    │☼Example 1 shows "HD 0 Part 1" is assigned with "H:" and example 3 shows automatically       ║
║    │    │  assigning drive letters to all the visible partitions on the fixed hard disk;              ║
║    │    │☼Usually,"TimeWait" can be absent.It is internally used when PECMD residenting in memory     ║
║    │    │  has detected the insertion of the removable hard disk;                                     ║
║    │    │☼The command of SHOW with all params absent will not voluntarily mount the hidden partition  ║
║    │    │  unless the "PartNo" is set as "-1";                                                        ║
║    │    │☼Use SHOW or SUBJ to delete the drive letter so as to load the outparts in the hidden        ║
║    │    │  partition and keep its attribution of being hidden at the same.                            ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'SHUT'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│SHUT [-force] [E|ONum|C|R|L|H|S|SHUTDOWN|-]  [--] [ScriptParamList]                          ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To shut down or reboot the computer.                                                         ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │  -force:to shut down quickly.                                                               ║
║    │PARA│■No params:to shut down the system by default;                                               ║
║    │    │■"E":to eject CDROM first and then wait for 10 minutes;                                      ║
║    │    │■"ONum":to eject CDROM first and wait for the specified number of MS,10000ms by default.     ║
║    │    │■"C":to shut down CDROM;                                                                     ║
║    │    │■"H":to be in dormancy.It should be supported by the system(enabled in the power option in   ║
║    │    │   the control pannel);                                                                      ║
║SHUT│    │■"L":to logout;                                                                              ║
║    │    │■"R":to reboot the system;                                                                   ║
║    │    │■"S":to suspend the system;                                                                  ║
║    │    │■"K":to lock the computer;                                                                   ║
║    │    │■"SHUTDOWN":offbeat shutdown.With params -s:to shut down(default) -r:to reboot -f:to force   ║
║    │    │  (default) --f:to cancel -f,-t:number of seconds                                            ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│SHUT H                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼That the command of "EXEC" hooks the specified function "ExitWindowsEx" and coordinates     ║
║    │    │  with SHUT will intercept all calls for shutting down the system so that it is properly     ║
║    │    │  done(Notice that this is a quick shutdown which may not save all the data).                ║
║    │    │☼If drive letters cannot be timely assigned to such devices as u disk and USB removable      ║
║    │    │  hard disk or shutdown appears slow,please try restarting AudioSrv(effective to some        ║
║    │    │  SIGMATEL HD series of integrated sound card)                                               ║
║    │    │☼TEAM EXEC =PECMD SERV !AudioSrv|SERV AudioSrv                                               ║
║    │    │☼REGI HKLM\SOFTWARE\PELOGON\FORCESHUTDOWN=#1  //With such setting,shutdown in StartupMenu    ║
║    │    │  is a quick one.                                                                            ║
║    │    │☼Automatically executed on shutdown:%SystemRoot%\System32\OnShutdown.wcs OPCode              ║
║    │    │  ScriptParamList                                                                            ║
║    │    │  OPCode:shutdown,reboot,logout,suspend,hiber,poweroff,unknown lock                          ║
║    │    │  The shutdown menu supports:shutdown,reboot,logout,poweroff,unknown                         ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'SITE'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│SITE <FileDirPath>,<FileDirAttr>                                                             ║
║    │    │SITE *touch[:[cr][*local:|*local0:|*sys:|*sys0:|*utc:]Time],<FilePath>[,RetVarName]          ║
║    │    │                                                         ☼to update the time of the file.    ║
║    │    │SITE ?VarName[,ProduVerName]=FVER,FileName               ☼to query the version of the file.  ║
║    │    │SITE ?[-local -ws -link] [[*]CreaTimVar][,[*]WritTimVar][,[*]AccTimVar]=FTIME,FileName       ║
║    │    │                                                         ☼to query the time of the file.     ║
║    │    │SITE ?[AVarName][,HVarName][,RVarName][,SVarName][,FullVarName]=FATTR,FileName               ║
║    │    │                                                         ☼to query the attribution of file.  ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To set or clear the attribution of file and directory,supportive of 4 types of attribution   ║
║    │    │A,H,R,S. FTIME is compatible with DATE,with the format of *local0.                           ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║SITE│PARA│■To set the attribution,use "+",and to eliminate,use "-",(A=DOC,H=HIDDEN,R=READ-ONLY,S=SYS)  ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│SITE %SystemDrive%\BOOT.INI,+H+R                                                             ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼SITE is capabile of setting the attribution of both file and directory.* before TimeVar     ║
║    │    │  indicates returning an integer of UTC time,which is directly applicable to comparison      ║
║    │    │  operation,otherwise a string is returned with all sections of the same width in the form   ║
║    │    │  of YearMonthDayHourMinuteSecondMicrosecondWeek.FVER/FVER/FATTR is mapped to the command of ║
║    │    │  ENVI/SET.                                                                                  ║
║    │    │  The variable of AHRS returns 0 or 1; FullVarName returns all attributions(more than 4)in   ║
║    │    │  hex; Null if fails.                                                                        ║
║    │    │☼-local:to return the local time and world time by default.-ws:to add a sequence number of   ║
║    │    │  the week in a year to the end of the returned string. -ws1:Sunday as the weekend.          ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'SIZE'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│SIZE [-link] <VarName><=><FileDirName>                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To return the size of a specified "FileDir",byte as the unit.                                ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■VarName:to store the size of file and directory.   -link:follow link file                   ║
║SIZE│    │■FileDirName:a valid name of file and directory.                                             ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│SIZE iSize=C:\Windows\System32\calc.exe or SIZE iSize=C:\Windows\System32                    ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼If FileDirName is a relative path,it is relative to the working directory of PECMD.EXE      ║
║    │    │  or the config file.                                                                        ║
║    │    │☼The outcome of example 1 is the size of "calc.exe" and example 2 is the size of the         ║
║    │    │  directory "C:\Windows\System32".                                                           ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'SLID'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│SLID [-right] [-left] [*] <Name>,<Shape>[,Info,CMD,Status]                                   ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│To create a slider in the window defined by _SUB.                                            ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│  * before <Name> : automatically recycled before quitting the block or function.            ║
║    │    │■Name:string,should be unique and not the same as those of other controls or environment var.║
║    │    │■Shape:the position and size of the slider.The format is <L(left)T(top)W(wide)H(high)>,      ║
║    │    │  L,T,W and Hare respectively followed by corresponding numbers.                             ║
║    │    │■Info:[StartVal][:EndVal][:InitVal][:PageSize].Default:0:100:0.                              ║
║SLID│    │■Event:the command to execute when it is clicked,a valid one supported by PECMD.             ║
║    │    │■Status:number,minus:disabled.0x10:invisible.0x40:horizontal.0x80:no slider.                 ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│SLID SLID1,L32T108W300H54,30:100:50,CALL OnSLID1 %SLID1%,0x40                                ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼It is generally located between _SUB and _END.                     Refer to _SUB and CALL.  ║
║    │    │☼To set the text on SPIN,use  "ENVI @Name=ButtonTxt".                        Refer to ENVI.  ║
║    │    │☼Use "ENVI @SLIDName.Enable=[#]Num" to set its serviceability,0:disabled; 1:enabled          ║
║    │    │  #:used in the subprocess.                                                                  ║
║    │    │☼USe "ENVI @Name.Visible=Num" to set its visibility; 0:invisible; not 0:visible.             ║
║    │    │☼Use "ENVI @Name.VAL=[CurVal][:InitVal][:EndVal][:PageSize]" to set the ValInfo.             ║
║    │    │☼Use "ENVI @Name.VAL=?[CurValVarName][:InitValVarName][:EndValVarName][:PageSizeName]"       ║
║    │    │  to query ValInfo.                                                                          ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'SOCK'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│SOCK [*] ButtonName; [ProFamily][; ProType][; ProID] //Commas can be used,the same below.    ║
║    │    │SOCK --file [*] CtrName;[we][-rwd];FileName  //to open an automatically released file        ║
║    │    │     handle for API, w:writable we:writable+exist -:reset share                              ║
║    │    │SOCK --shm [*] CtrName;[w];ShareName;Len[;Src;Off;InitV;InitN] //Alloc shared mem.w:writable ║
║    │    │SOCK --event [*] CtrName;ShareName[;initv;bManual]        //Alloc event                      ║
║    │    │SOCK --sem[aphore] [*] CtrName;ShareName[;initv;maxv]       //Alloc semaphore                ║
║    │    │SOCK --mutex [*] CtrName;ShareName[;InitLock(0)]          //Alloc Mutex                      ║
║    │    │SOCK --mailslot [*] CtrName;ShareNam[;bServer;TimeoutMs]  //mailslot .read/write receve/send ║
║    │    │SOCK --pipe [*] CtrName;ShareNam[;TimeoutMs;BufSZ;Link]   //pipe .read/write  .connect       ║
║    │    │           Link: 0x1:Now  0x2:Client 0x4:Server 0:Auto(First Server)                         ║
║    │    │SOCK --gethostbyname[*|#]    IPName;HostName  //to return IP address,*:multiple addresses    ║
║    │    │     are separated by space,#:integer.                                                       ║
║    │    │SOCK --unknown  Name //AutoReleased IUnknown pointer                                         ║
║    │    │SOCK [--v] --BSTR[vt] Name[,[*][InitV][,FromStr]] //AutoFreed_BSTR  vt:variant *:TXT --v:from║
║    │    │  Name. EmptyName:init ENV.                                                                  ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To define an automatically recyled object of network connection.--exist:check(PIPE may 231)  ║
║    │    │ --only:only one                                                                             ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│  * before <ButtonName> indicates being automatically recycled before quitting the block or  ║
║    │    │  function.                                                                                  ║
║    │    │■ButtonName:string,should be unique and not the same as those of other controls or           ║
║    │    │  environment variables.                                                                     ║
║    │    │■ProFamily:generally,the default internetwork:AF_INET=2.                                     ║
║SOCK│    │■ProType:with connection:SOCK_STREAM=1(default),without connection:SOCK_DGRAM=2              ║
║    │    │■ProID: TCP:IPPROTO_TCP=6(default) UDP:IPPROTO_UDP=17   IP:IPPROTO_IP=0                      ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│SOCK s1 or SOCK s2; ; %&SOCK_DGRAM%; %&IPPROTO_UDP%                                          ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼"ENVI @Name.connect=[ErrVarName]; IP; PortID",to connect to the server.ErrVarName returns   ║
║    │    │  the error code,0:no error.                                                                 ║
║    │    │☼"ENVI @Name.write=[ErrVarName]; [LenVarName]; [DataVarName]; [NumByteSent[@Offset]]         ║
║    │    │  [; SendMark][; IP][; PortID]".LenVarName returns the actual number of bytes sent,which is  ║
║    │    │  the number of bytes contained in DataVarName by default.If connected,"IP PortID" is not    ║
║    │    │  necessary or applicable to SOCK_STREAM.                                                    ║
║    │    │☼"ENVI @Name.read=[ErrVarName]; [LenVarName]; [DataVarName]; [*][NumByteReceived[@Offset]]   ║
║    │    │  [; SendMark][; IP][; PortID]".LenVarName returns the actual number of bytes received,      ║
║    │    │  which is the number of bytes contained in DataVarName by default.* indicates automatically ║
║    │    │  trying reading for many times until all the data is read.                                  ║
║    │    │  "IPVarName PortIDVarName":to return the IP and port of the opposite side,with # before     ║
║    │    │  IPName,the command will return the object of address and the length of the object.         ║
║    │    │☼"ENVI @Name.close=[ErrVarName]",to automatically release the connection.ErrVarName returns  ║
║    │    │  the error code,0:no error.                                                                 ║
║    │    │☼"ENVI @Name.sock=[ErrVarName][;ProFamily][;ProType][;ProID]",to regenerate a new sock.      ║
║    │    │☼"ENVI @Name.shutdown=[ErrVarName][;Mode]",to friendlily inform closing the connection.      ║
║    │    │  default(2):to close bidirectionally.0:to receive  1:to send                                ║
║    │    │  [.sock] and [.close] contain this function.                                                ║
║    │    │☼"ENVI @Name.bind=[ErrVarName]; IP; PortID",to bind the server with monitored IP and port.   ║
║    │    │☼"ENVI @Name.listen=[ErrVarName][ConnPoolSize]",the number of the waiting connections to be  ║
║    │    │  simutaneously cached,7 by default.                                                         ║
║    │    │☼"ENVI @Name.accept=[ErrVarName];[MonitorConnfd][; IPVarName][; PortVarName]".MonitorConnfd  ║
║    │    │  is the father connection number of listen.                                                 ║
║    │    │  "IPVarName PortIDVarName":to return the IP and port of the opposite side,with # before     ║
║    │    │  IPVarName,the command will return the object of address and the length of the object.      ║
║    │    │☼"ENVI @Name.fd=fdVarName",fdVarName returns the internal connection number of the           ║
║    │    │  connection for accept,select and WINDOWSAPI.                                               ║
║    │    │☼"ENVI @Name.mem=mVName",mVName returns the SHM address. ENVI-mkfixdummy &&V=%mVName%:len    ║
║    │    │☼"ENVI @Name.setsockopt=[ErrVName];[CfgLevel];CfgItem;CfgDatVName[;CfsgDatsLen]"             ║
║    │    │  ConfigLevel is SOL_SOCKET(0xffff) by default.ConfigDataLen is all the data by default.     ║
║    │    │  Commonly used:TEAM ENVI#$ &&v=1| ENVI @sv.setsockopt=; ; %&SO_REUSEADDR%,&v //allowed to   ║
║    │    │  remonitor the address.                                                                     ║
║    │    │☼"ENVI @Name.ioctlsocket=[ErrVName];;ConfigItem; ConfigDataVarName"                          ║
║    │    │☼"ENVI @Name.DeviceIoControl=[ErrVName];OP;IAddr|*PENm;InLen;OAddr|*PeNm;Olen;RNM[;lpov]     ║
║    │    │☼"ENVI @Name.select=[ErrVName]; MSTimeout; [[ReadRetVarName:]readfd1:readfd2:...]            ║
║    │    │  [; [WriteRetVarName:]writefd1:writefd2:...][; [AbnormalRetVarName:]abnormalfd1:            ║
║    │    │  abnormalfd2:..]. "," indicates itself.                                                     ║
║    │    │  If params from ReadRetVarName to the end all absent,the default is to wait till the socket ║
║    │    │  is ready for data reading.The default of MSTimeout is -1 indicating waiting all the time   ║
║    │    │  and 0 indicating checking and returning immediately.                                       ║
║    │    │☼"ENVI @Name.getname=[ErrVarName]; [0/1]; [IPVarName][; PortIDVarName]".to return IP and     ║
║    │    │  port of this side(0 by default)/the opposite side(1).The same as above.                    ║
║    │    │☼"ENVI @Name.wait=[ErrVName][;ms][;[[*]handle2:handle3...]]"  //wait .def INFINITE  *:All    ║
║    │    │  "ENVI @@wait=(Type)ShareName;[ErrVName][;ms][;[[*]handle2:handle3...]]"                    ║
║    │    │☼"ENVI @Name.setevent=[ErrVName][;1][;NmOldV]"  //set/free it. 0 for clear all event         ║
║    │    │  "ENVI @@setevent=(Type)ShareName;[ErrVName][;1][;NmOldV]"   Type:event/mutex/sem[aphore]   ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'SPIN'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│SPIN [-right] [-left] [*] <ButtonName>,<Shape>[,ValInfo][,CMDParamVarName][,CMD][,Status]    ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To create a button with up and down keys in the window defined by _SUB.                      ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│  * before <ButtonName> indicates being automatically recycled before quitting the block or  ║
║    │    │  function.                                                                                  ║
║    │    │■ButtonName:string,should be unique and not the same as those of other controls or           ║
║    │    │  environment variables.                                                                     ║
║    │    │■Shape:the position and size of the button.The format is <L(left)T(top)W(wide)H(high)>,      ║
║    │    │  L,T,W and H are respectively followed by corresponding numbers.                            ║
║    │    │■ValInfo:[PartnerEDITVarName][:StartVal][:EndVal][:InitVal].Default:0:100:0.EDITVarName is   ║
║    │    │  prior to autobudy.                                                                         ║
║SPIN│    │■Event:the command to execute when it is clicked,a valid one supported by PECMD.             ║
║    │    │■CMDParamVarName:[NewValVarName][:ButtonVarName][:OldValVarName].The ButtonVarName returns   ║
║    │    │  0/1,corresponding to the down button/up button.                                            ║
║    │    │■Status:number,minus:disabled,0x10:invisible,0x20:wrap,0x40:horizontal,0x80:to autobudy the  ║
║    │    │  previous control.                                                                          ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│SPIN SPIN2,L32T108W300H54,edit1:-10:10,&&pos:&&id:&&oldv, CALL OnSPIN1 %&pos% %&id%,0x40     ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼SPIN is generally located between _SUB and _END.             Refer to _SUB and CALL         ║
║    │    │☼To set the text on SPIN,use "ENVI @SPINName=ButtonTxt".   Refer to ENVI                     ║
║    │    │☼Use "ENVI @SPINName.Enable=[#]Num" to set its serviceability.0:disabled; 1:enabled(not to   ║
║    │    │  respond).#:used in the subprocess.                                                         ║
║    │    │☼Use "ENVI @SPINName.Visible=Num" to set its visibility.0:invisible; not 0:visible.          ║
║    │    │☼Use "ENVI @SPINNaem.VAL=[CurVal][:StartVal][:EndVal]" to set the ValInfo.                   ║
║    │    │☼Use "ENVI @SPINName.VAL=?[CurValVarName][:StartValVarName][:EndValVarName]" to query the    ║
║    │    │  ValInfo.                                                                                   ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'SSTR'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│SSTR [-case] <VarName><=><Char>,<Num>,<Str>                                                  ║
║SSTR├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To return the position in which the specified "SubStr" appears from the left of "SrcStr".    ║
║    │    │alias of LPOS*                                                                               ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'STRL'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│STRL [*] [-m|-8] <VarName><=><Str>                                                           ║
║    │    │STRL -bin <VarName>=PEVarName  //to return the number of bytes of the memory for an object   ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To return the length of a specified "Str".* indicates a VarName following behind,and if not, ║
║    │    │-1 will be returned.                                                                         ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │  -m/8:to return the number of bytes of a multibyte/UTF8 code,2/(>=2) for a Chinese          ║
║    │    │  character generally. Otherwise a UNICODE number will be returned,1 for a Chinese character ║
║    │    │  .[-m is generally not used].                                                               ║
║STRL│PARA│■VarName:to store the outcome of the command;                                                ║
║    │    │■Str:the string to check,length unlimited.                                                   ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│STRL iLen=1234567890 or STRL dLen=ABCDEFGHI                                                  ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼This command returns the length of a Unicode string.The returned value of example 1 is 10   ║
║    │    │  and example 2 is 5.                                                                        ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'SUBJ'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│SUBJ [-BD[-]] [*&-]<VirDrv>,[Path_assigned_to_VirDrv|?RetName]                               ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To associate the path with the drive number,equivalent to the command of SUBST in CMD.       ║
║    │    │-BD[-] Notify Add/Remove drive letter                                                        ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║SUBJ│PARA│■&:local mode,may not be seen by other processes.When mounting,* indicates lasting mounting  ║
║    │    │  and when unmounting,* indicates unmounting all.Otherwise it refers to the last mounting.   ║
║    │    │■If "Path assinged to VirDrv" is absent or - is present,the specified drive will be deleted  ║
║    │    │  Chinese characters can be used for the virtual drive.                                      ║
║    │    │  The path can be one for a physical device,like \Device\HarddiskVolume7                     ║
║    │    │  \\.\CDROM0~N \\.\TYPE0~N \\?\Volume{6467fdff-fe6d-11d5-8ba2-0000e232d2e9}\.                ║
║    │    │  A drive letter can be continuously mounted to different positions.The seen is the last.    ║
║    │    │  Unmounting without * will see the opposite procedure.Unmounting with - means unmounting    ║
║    │    │  the specified target behind.Chinese characters help to settle the insufficiency of drive   ║
║    │    │  letters and keep secrect and can be mounted or unmounted as is needed.One device can be    ║
║    │    │  mounted more than once.                                                                    ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│SUBJ B:,D:\My or SUBJ *Mao:,\Device\HarddiskVolume7 or                                       ║
║    │    │SUBJ *Mao:,\Device\Harddisk0\Partition1                                                      ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼When a drive is to be virtualized,it should not be an exsisting one.When a virtual drive    ║
║    │    │  is to be deleted,the drive letter should be correct,or a physical one is likely to be done ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'SWIN'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│SWIN   [*] [PicBoxName]:ClsName:[Name],<Shape>,[InternalPos][,Status] //picture in picture   ║
║    │    │SWIN   [*] -:ClsName:[Name],<Shape>,,[Status]                                                ║
║    │    │SWIN  -sub[:-#LxTyWwHh]] [ClsName]:[Name][,][CMDLineParam]       //external subwindow        ║
║    │    │                                                                 -:with title, #:with frame  ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│attribution list.                                                                            ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │  * after SWIN indicates being automatically recycled before quitting the block or function. ║
║    │    │■PicBoxName:the name of the picture box.                                                     ║
║    │PARA│■ClsName:the window defined by _SUB.An instance of window will be created according to it.   ║
║    │    │■Name:string,the name of the window instance should be unique,not the same as those of       ║
║    │    │  other controls or environment variables.The default is a class name.                       ║
║    │    │  A proper number of "-" being added before PageName of the subinterface indicates directly  ║
║    │    │  promoting the PE variables of the subinterface by corresponding levels.                    ║
║SWIN│    │■Shape:the position and size.The format is:<L(left)T(top)W(wide)H(high)>.L,T,W and H are     ║
║    │    │  respectively followed by corresponding numbers.                                            ║
║    │    │■InternalPos:the position in the picture box.The format is <L(left)T(top)>.L and T are       ║
║    │    │  respectively followed by corresponding numbers,0 by default.                               ║
║    │    │■Status:number,minus:disabled,0x10:invisible,0x40:with frame,0x80:horizontal scroll bar,     ║
║    │    │  0x100:vertical scroll bar. 0x200:captionbar                                                ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│SWIN -:Page1,L42T5W194H125 or  SWIN Swin1:Page1,L42T5W194H125,,0x1C0                         ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼SWIN is generally located between _SUB and _END.                   Refer to _SUB and CALL.  ║
║    │    │☼Use "ENVI @Name.Enable=Num" to set its serviceability.0:disabled,1:enabled.                 ║
║    │    │☼Use "ENVI @Name.Visible=Num" to set its visibility; 0:invisible,1:visible.                  ║
║    │    │☼In the instance of window,this refers to the current real instance of window.- refers to    ║
║    │    │  the window instance of parent level.Instances of different levels are separated by : like: ║
║    │    │  ENVI @this:Page1:ITEM.Enable=1                                                             ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'TABL'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│TABL [-hfont:HeadFontSize[:FontNameAdorn]] [-font:FontSize[:FontNameAdorn][:HeadH:HeadColor: ║
║    │    │      Grad:::FontH:FontW:LineH]] [-color:[BKColor][#TxtBKColor][#DefaultTxtColor][#SelCellCo ║
║    │    │     lor]] [-sps] -ckszCheckBoxSz  [*] [Name],<Shape>[,FormatData][,Data][,Status]           ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To make a table.                                                                             ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │  * after TABL indicates being automatically recycled after quitting the block or function.  ║
║    │    │  -sps:The columns are separated by successive null characters.*:to select the default color ║
║    │    │  as the one of selected cell,which is also applicable to the line selection if only one     ║
║    │    │  line is available for selection.                                                           ║
║    │PARA│■Name:string,the name of a window instance should be unique,not the same as those of other   ║
║    │    │  controls or environment variables.The default is the name of a class.                      ║
║TABL│    │■Shape:the position and size of the table.The format is:<L(left)T(top)W(wide)H(high)>.L,T,W  ║
║    │    │  and H are respectively followed by corresponding numbers.                                  ║
║    │    │■FormatData:the head of the table.Columns are separated by TAB.For each column:              ║
║    │    │  "[#Color[#BKColor]][=|+]Width[/Gap]:Title".If absent,the number of the columns are determi-║
║    │    │  ned by data.* before Width indicates left alinged(default),= right aligned,+ center aligned║
║    │    │  .The front alignment and spacing are for the head. The DefaultTxtColor is prior to others. ║
║    │    │  It is the same with the added columns below.                                               ║
║    │    │■Data:the data to initialize the content of the table.Columns are separated by TAB and       ║
║    │    │  lines are separated by line breaks.                                                        ║
║    │    │■Status:number,minus:disabled.0x10:invisible.0x40:with frame.0x80:without horizontal scroll  ║
║    │    │  bar.0x100:without vertical scroll bar.0x200:without grid lines.0x400:with check.           ║
║    │    │  0x800:to drag the headline to adjust the sequence of columns.0x2000:without headline.      ║
║    │    │  0x4000:to disable width ajustment.0x10000:only one line permitted to choose(highlight).    ║
║    │    │  0x40000:double click to select the cell.0x80000:to disable line selection.0x100000:to      ║
║    │    │  color the checked line.  0x200000/0x400000 1st/All column  may include pic. 0x4000000: TAB ║
║    │    │  SWITCH.                                                                                    ║
║    │    │  "*P:W{W}H{H}S{sW}V{sH}X{sX}Y{sY}|?File[>S{sW}V{sH}X{sX}Y{sY}|?|FileChk]%Nla%Text" ?[?]Ass- ║
║    │    │  ociate[Replace] |Adv-Mode check/Sel {sW}{sH}{sX}{sY}:- indicates a multiple.0x800000/0x100 ║
║    │    │  0000: OnlyHori/vert line. 0x8000000 SEL Pic.                                               ║
║    │    │  Notice that selecting and checking are two separate solutions!                             ║
║    │    │  1> click a line to color:0x10000                                                           ║
║    │    │  2> double click the cell to select and color,disable line selection:                       ║
║    │    │    0x40000+0x80000=0xC0000                                                                  ║
║    │    │  3> check but not color,disable line selection:0x80000+0x400=0x80400  //multiline check     ║
║    │    │  4> check and color,disable line selection:0x100000+0x80000+0x400=0x180400 //same above     ║
║    │    │  5> no check and color,disable line selection:0x100000+0x80000=0x180000 coordinating with   ║
║    │    │    Check=XX; 2                                         //multiline selection without check  ║
║    │    │  6> color freely:0x80000                               //ENVI @Name.color=Color             ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│TABL TABL1,L42T5W194H125,50:C1%TAB%+50:C2%TAB%-50:C3,%MUI_LINE_DATA%                         ║
║    │    │ENVI @TABL1.Sel=?.&Line,&Col                                                                 ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼TABL is generally located between _SUB and _END.                   Refer to _SUB and CALL.  ║
║    │    │☼Use "ENVI @Name.Enable=Num" to set its serviceability; 0:disabled,1:enabled.                ║
║    │    │☼Use "ENVI @Name.Visible=Num" to set its visibility; 0:invisible,1:visible.                  ║
║    │    │☼Use "ENVI @Name.Sel=LineID[;Val]" to select a line.LineID and ColumnID start from 1         ║
║    │    │      (the same below).Val:0/1,1 by default.0:unchecked; 1:checked; 2:toggle                 ║
║    │    │☼Use "ENVI @Name.Sel=?[*]VarName" to get the current LineID.<=0:not selected.*:to return     ║
║    │    │      all selected lines separated by space.                                                 ║
║    │    │☼Use "ENVI @Name.Sel=?.[LineVarName][; ColumnVarName]" to get the current position of the    ║
║    │    │      cell focused by mouse.<=0:invalid.                                                     ║
║    │    │☼Use "ENVI @Name.Sel=+Line; Column" to get the position of the currently selected cell.      ║
║    │    │      <=0:invalid.equal to double click.                                                     ║
║    │    │☼Use "ENVI @Name.Sel=?+[LineVarName][; ColumnVarName]" to get the position of the currently  ║
║    │    │      selected cell.<=0:invalid.                                                             ║
║    │    │☼Use "ENVI @Name.Val=?*;[NumLineVarName][; NumColumnVarName]" to get the numbers of lines    ║
║    │    │      and columns.                                                                           ║
║    │    │☼Use "ENVI @Name.Val=?*.*; VarName" to get all data,ENTER as line breaks.                    ║
║    │    │☼Use "ENVI @Name.Val=?LineID[.ColumnID];VarName" to query the content of a specified line    ║
║    │    │      /cell.Columns are separated by TAB(the same below).                                    ║
║    │    │☼Use "ENVI @Name.Val=LineID.ColumnID;Val" to set the content of a specified cell.            ║
║    │    │☼Use "ENVI @Name.Val=[>]LineID[*[*[*]]][#][.ColumnID][/LineH]; Val" to set the content of sp.║
║    │    │      line.The interval is specified by the switch of TABL.LineID 0 indicates adding a new   ║
║    │    │      line from the bottom and fill with the content.If there is ColumnID,fill this column   ║
║    │    │      with the content.* behind LineID indicates multiline is permitted.,**[*],add line[cel] ║
║    │    │      on need.#:to eliminate the redundant at the end,and  "." can be absent.>:Insert        ║
║    │    │☼Use "ENVI @Name.Val=-[*]LineID[#NumLine]" to delete this line or several lines.             ║
║    │    │      *:to delete to the end.                                                                ║
║    │    │☼Use "ENVI @Name.Val=.-ColumnID" to delete this column.                                      ║
║    │    │☼Use "ENVI @Name.Val=+;[#Color][#BKColor][=|+]ColumnW:ColumnTitle" to add a column.          ║
║    │    │☼Use "ENVI @Name.Check=?[*]VarName" to get LineID currently checked.Null means no checking.  ║
║    │    │      *:to return all lines checked,separated by space.                                      ║
║    │    │☼Use "ENVI @Name.Check=?LineID;VarName" to query if the line is checked.                     ║
║    │    │☼Use "ENVI @Name.Check=LineID;Check" to set the status.0:unchecked,1:checked,2:toggle        ║
║    │    │☼Use "ENVI @Name.Enable=~?[*]VarName" to get LineID currently disbled. *:for all.            ║
║    │    │☼Use "ENVI @Name.Enable=~?LineID;VarName" to query if the line is enabled.                   ║
║    │    │☼Use "ENVI @Name.Enable=~LineID;vEn[-]" to enable a line. 0:Disable,1:Enable，2:in_turn -:ns ║
║    │    │☼Use "ENVI @Name.Color=[LineID].[ColumnID];[Color][;BKColor]" to set the cell/line/col color.║
║    │    │                      =?[LineID].[ColumnID];VarName;VarName; to query,return null if there is║
║    │    │      no color.The color of cell is prior to the one of line and the one of line prior to    ║
║    │    │      the one of column.-1 means eliminating the setting of color.                           ║
║    │    │☼Use "ENVI @Name.Color=ColumnID;[Color][;BKColor][;FontSize;FontName]" to set column_color   ║
║    │    │                       =?ColumnID;[VarName][;VarName] to query,return null if no color.      ║
║    │    │☼Use "ENVI @Name.Color=*LineID;[Color][;BKColor][/LineH][;FontSize;FontName]" to set LColor  ║
║    │    │                       =?*LineID,ColorVarName,to query,return null if there is no color.     ║
║    │    │      If FontSize is -,it means eliminating the font. LineH=0:Cancel                         ║
║    │    │☼Use "ENVI @Name.UPos=?[@#][*LnID][.ColID];L;T;R;B"to query pos. *:Line  @:ICO #:LABEL       ║
║    │    │☼Use "ENVI @Name.Percent=[*Line]|[Line.Col];[Percent][C|R|L|F|K][:BkColor][:PrgColor]        ║
║    │    │       [:TxtColor][:TXT]"   K:Skip CheckBox                                                  ║
║    │    │☼Expand "Val=" to  "Val=*:[l{LineSymbol}][c{ColumnSymbol}]:"  if needed.                     ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'TABS'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│TABS   [*] Name,<Shape>,PropPageSet,[Status]                                                 ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│property tabs.                                                                               ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│  * before Name indicates being automatically recycled before quitting the block or          ║
║    │    │  function.                                                                                  ║
║    │    │■Name:string,should be unique and not the same as those of other controls or                 ║
║    │    │  environment variables.                                                                     ║
║    │    │■Shape:the position and size of the button.The format is <L(left)T(top)W(wide)H(high)>.L,T,  ║
║    │    │  W and H are respectively followed by corresponding numbers.                                ║
║    │    │■PropPageSet: Page1ClsName[:Page1Name][:Page1Title][:Page1Tip]; Page2ClsName[:Page2Name]     ║
║    │    │  [:Page2Titel]:[Page2Tip]; ...                                                              ║
║TABS│    │  ClsName is the window defined by _SUB.Variables are supported.PageName is the practical    ║
║    │    │  name for operation,which is the ClsName by default.                                        ║
║    │    │  A proper number of "-" being added before PageName of the subinterface indicates directly  ║
║    │    │  promoting the PE variables of the subinterface by corresponding levels.                    ║
║    │    │■Status:number,minus:disabled button,0x10:invisible,4:multiline,0x20:wide mode,0x40:with     ║
║    │    │  frame,0x80:vertical setting of types.                                                      ║
║    │    │  THICKFRAME=0x40000  DLGFRAME=0x400000 BORDER=0x800000                                      ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│TABS TABS1,L32T108W300H54,Page1:P1:title1:tip1;Page2:P2:title1:tip1                          ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼TABS is generally located between _SUB and _END.                   Refer to _SUB and CALL.  ║
║    │    │☼To set the text of the property page:"ENVI @Name.TilteSN=Txt",SN starts from 1.             ║
║    │    │☼Use "ENVI @Name.Enable=Num" to set its serviceability; 0:disabled,not 0:enabled             ║
║    │    │☼Use "ENVI @Name.Visible=Num" to set its visibility; 0:invisible,not 0:visible.              ║
║    │    │☼Use "ENVI @Name.Select=SN" to set the selected page; >=1.  %&Name.Select%  %&Name.TilteSN%  ║
║    │    │☼To set the tips on the property page:"ENVI @Name.TipSN=Txt". %&Name.TipSN%                  ║
║    │    │☼In window instance,this refers to the current real window instance.- refers to the window   ║
║    │    │  instance of parent level.Instances of different levels are separated by : like:            ║
║    │    │  ENVI @this:P1:ITEM1.Enable=1                                                               ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'TEAM'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│TEAM[^#~+-@$%*?/\;,."'<] CMD1|CMD2|CMD3|CMD4|CMD5|......|CMDn                                ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To sequentially pre-execute all the commands in the specified command group. ^#~+- are the   ║
║    │    │alternative delimiters for |.  <: right to left.                                             ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║TEAM│PARA│■one or more commands,separated by "|".                                                      ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│TEAM TEXT Load Desktop|LOGO|HIDE|SHEL %SystemRoot%\EXPLORER.EXE|WAIT 3000                    ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼This command cannot be nested with IFEX or FIND.                                            ║
║    │    │☼TEAM nest:The outermost is broken by |,the inner by ||,and the further inner by |||...      ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'TEMP'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│TEMP [[@]Delete|[$]Setting]  [InitDir][,VarName]                                             ║
║    │    │TEMP @[$]Setting   NewTempDir,[VarName]                  //to set in silence.                ║
║    │    │TEMP [*del] [*tmpl:[Front]*[Back]] *tmpdir [,]VarName    //to create the unique temporary    ║
║    │    │directory, *del:to automatically delete on exit.                                             ║
║    │    │TEMP [*del] [*tmpl:...]*tmpfile  [,]VarName[,DirVarName] //to create the unique temporary    ║
║    │    │file.                                                                                        ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To clear user's temporary folder or reset the position of user's temporary folder.           ║
║    │    │$:to set system variables as well.         A directory cannot be contained at the end.       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║TEMP│PARA│■Delete:to clear the temporary directory,@ indicates direct clearing without user's          ║
║    │    │  confirmation; Setting indicates resetting the position of the temporary directory.         ║
║    │    │■VarName:to return the old or newly-set temporary directory.                                 ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│TEMP Delete  or  TEMP *del *tmpl:d:\A\B\CC*.txt *tmpfile  ,&&FName,&&Dir                     ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼Do not use this commmand in a config file.It is used only after the desktop is loaded and   ║
║    │    │  it reads the position of the temporary directory from the registry.                        ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'TEXT'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│TEXT[.] [Txt][#Color][LLeft][TTop][RRight][BBottom][=+-][$FontSize[:FontName]][*]            ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To display the text in the login sreen or desktop window.\n to break a line,and the suffix . ║
║    │    │indicates not converting the newline in the raw mode.                                        ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■If Txt is null,the text in the lately-defined rectangle area will be cleared.The default    ║
║    │    │  color is white and the default coordinates is roughly at the top left corner. Ending with  ║
║    │    │  "*" indicates not clearing the originally displayed text before displaying the new.        ║
║    │    │  #LTRB=+- should be capitalized and the sequence cannot be changed. = indicates right       ║
║    │    │  aligned,+/- indcates horizontally/vertically center aligned.                               ║
║TEXT├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│TEXT Registering components……#0xFFDDDD L4 T720 R300 B768 $20                                 ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼This command displays a multiline text.                                                     ║
║    │    │☼The FontSize is 16 by default(equivalent to the typeface of Song,small number 5).           ║
║    │    │☼The specified position[left,top,right,bottom] is related to the length of the text and      ║
║    │    │  size of font.                                                                              ║
║    │    │☼This command will display the text on the login screen if it is used during login           ║
║    │    │  (in config file),and in the desktop window if it is used in Windows(after login).          ║
║    │    │  If params are absent,it will clear the last displayed text.If the text contains the        ║
║    │    │  characters #LTRB and they do not appear as params behind,they can be transfered to         ║
║    │    │  variables.                                                                                 ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'THREAD'  'THRD'                                                                             ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│THREAD[&][*][+][$][#] ⌠-exp⌡ ⌠-wait[x][ -here]⌡ [-link] [--st:NumByteStack] CMDGroup         ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║ T  │FUNC│To start a thread and run a command(group).Command line params with %n should not be used in ║
║ H T│    │the command group.If needed,convert with ENVI.                                               ║
║ R H├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║ E R│PARA│■Any valid command or command group.&:to force variables to be PE ones,which helps to        ║
║ A D│    │  achieve muitithread in the simplest way.&*+$ are not sequence sensitive.*/-link:to remain  ║
║ D  │    │  the relationship of parent and child including the window,and the parent process cannot be ║
║    │    │  operated until the subprocess is completed(Thread safety has already been supported by     ║
║    │    │  PECMD).The default separate mode indicates no relationship with each other.+ indicates the ║
║    │    │  abandoned thread,ie,the program will not wait for its exit all along.$/-exp:to interpret   ║
║    │    │  the command group behind once in advance.-wait:to wait for the end of the thread(x:not     ║
║    │    │  to block), -here:as child of courrent PE stack (Only in this way can we operate tmpPeVar)  ║
║    │    │  .  -tid:TidName.  -htid:HandTidName -waitp:Wait for the thread before the process ends.    ║
║    │    │☼After a thread is created,%&&__LastTID% is the unique ID for the last created thread,and    ║
║    │    │  %&__TID% is the ID for current thread.CALL @~ CALL @^ MESS-                                ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│THREAD  CALL Hello  a1 a2 a3                                                                 ║
║    │    │TEAM THREAD*  CALL @Menu01|  CALL @WIN1    //to open two windows simutaneously.              ║
║    │    │WAIT *syscmd THREAD#  MESS  bbbb           //#:to start a thread in proxy mode.The proxy     ║
║    │    │exits if the thread ends.                                                                    ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'TIME'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│TIME [-t:[+]Times] [*] <TimerName>,<TimerCyc>,[TimerEvent]                                   ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To create a timer in the window defined by _SUB.                                             ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│  * before TimerName indicates being automatically recycled before quitting the block or     ║
║    │    │  function.                                                                                  ║
║    │    │■TimerName:string,should be unique and not the same as those of other controls or            ║
║    │    │  environment variables.                                                                     ║
║    │    │■TimerCyc:number,ms as the unit,>0 indicates the timer starts working immediately and 0      ║
║    │    │  indicates the timer stops.                                                                 ║
║TIME│    │■TimerEvent:the command to execute when the timer is triggered,a valid one supported by PECMD║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│TIME Timer1,10000,FILE %TEMP%\*.*                                                            ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼TIME can be located beyond _SUB and _END to execute some commands.                          ║
║    │    │☼The environment variable %TimerName% refers to the working status of the timer.0:stopped,   ║
║    │    │  not 0:started.                                                                             ║
║    │    │☼Use "ENVI @TimerName=0" to stop the timer,and use "ENVI @TimerName=TimerCyc[<;|,>Times]"    ║
║    │    │  to restart.                                                                                ║
║    │    │☼Use "ENVI @CtrlName.*del="(or "ENVI @TimerName=-del")to delete.After that a new one can be  ║
║    │    │  redefined.                                                                                 ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'TIPS'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│TIPS[.*] [TipboxTitle],<TipboxContent>,[LifeMs],[PatrnID],[<@[A]TipboxPos>|[TrayIco]],[#WID] ║
║    │    │TIPS#[.*][TipboxTitle],<TipboxContent>,#[LifeMs],[PatrnID],[<@[A]TipboxPos>|[TrayIcon]]      ║
║    │    │TIPS -dummy [?]Setting4Emu  //Set or clear Setting4Emu. Needed only once. ? only for win10   ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To display a bubble tip box in a specified position on the screen or in the tray.If all      ║
║    │    │params absent,invalid tray icons will be cleared.TIPS - indicates clearing the bubble tip    ║
║    │    │box.TIPS * indicates clearing the tray icons and bubble tip box.The suffix * indicates a     ║
║    │    │private control of TRAY in a window.If the tray is updated,the TrayIcon can be filled with   ║
║    │    │** and the original icon will remain unchanged.  -w:Wait -f:show forcely on end of process   ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■TipboxTitle:string,the text displayed on the title of the tip box.Its length cannot exceed  ║
║    │    │  64 characters.The part of excess will be invalid.                                          ║
║    │    │■TipboxContent:string,the content of the text displayed on the tip box.Its length cannot     ║
║    │    │  exceed 256 characters,"\n" as the line break.                                              ║
║    │    │  "." indicates not converting \n. # indicates a necessary dilimiter,and the TipboxContent   ║
║    │    │  can be any character at this time.                                                         ║
║    │    │■LifeSpan:number,the time for displaying the tip box(ms).If absent,10 seconds by default     ║
║    │    │  and the longest time for displaying is determined by the system.                           ║
║    │    │■PattnID:number,0 by default(no icon),1(an information icon),2(a warning icon),3(an error    ║
║    │    │  icon),4 or above(tray icon).                                                               ║
║TIPS│    │■TipboxPos:with the necessary "@",it indicates displaying the tip box in a specified         ║
║    │    │  position on the screen."A" indicates a tip box in the shape of arrow and if "A" is absent, ║
║    │    │  it indicates a square one.The position is indicated as LxxTyy(xx,yy are numbers) and this  ║
║    │    │  param cannot be used together with "TrayIcon".                                             ║
║    │    │■TrayIcon:The format is "[FileName][#Num]".If "FileName" is absent,use the icon specified    ║
║    │    │  in the program resource of PECMD.EXE.                                                      ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│TIPS Title,Content\nnewline permitted\nLine 3,5000,1,#1 or  TIPS -dummy  ?R*-20B*-20  or     ║
║    │    │TIPS Title,Content\nnewline permitted\nLine 3,5000,2,@aL600T400                              ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼The tray bubble tip box ends as PECMD ends.                                                 ║
║    │    │☼The tip box on the screen ends as PECMD ends,so ensure that the life span of PECMD should   ║
║    │    │  be a bit longer than that of the tip box(use the command of WAIT to delay).                ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'TREE'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│TREE [-font:FontSize[:FontNameAdorn:FontH:FOntW:NodeH -color:BgColor#TxtColor [*]            ║
║    │    │     [Name],<Shape>[,PicData][,Data][,Status]                                                ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To make a tree.                                                                              ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │  * after TREE indicates being automatically recycled after quitting the block or function.  ║
║    │    │  -sps:The columns are separated by successive null characters.*:to select the default color ║
║    │    │  as the one of selected cell,which is also applicable to the line selection if only one     ║
║    │    │  line is available for selection.                                                           ║
║    │PARA│■Name:string,the name of a window instance should be unique,not the same as those of other   ║
║    │    │  controls or environment variables.The default is the name of a class.                      ║
║TREE│    │■Shape:the position and size of the tree.The format is:<L(left)T(top)W(wide)H(high)>.L,T,W   ║
║    │    │  and H are respectively followed by corresponding numbers.                                  ║
║    │    │■PicData:[:PicW:PicH]Pic1%TAB%Pic2%TAB%Pic3...                                               ║
║    │    │■Data:<InxPic:InxPicSel>Text.Node are separated by TAB. 0x0b subtree 0x0C                    ║
║    │    │■Status:number,minus:disabled. 1:HASBUTTONS  2:HASLINES 4:LINESATROOT 8:EDITLABELS           ║
║    │    │  0x10:DISABLEDRAGDROP 0x20:SHOWSELALWAYS   0x40:RTLREADING  0x80:NOTOOLTIPS                 ║
║    │    │  0x100:CHECKBOXES 0x4200:TRACKSELECT 0x400:SINGLEEXPAND 0x800:INFOTIP 0x1000:FULLROWSELECT  ║
║    │    │  0x2000:NOSCROLL 0x4000:NONEVENHEIGHT 0x8000:NOHSCROLL 0x1000000:visible                    ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│TREE TREE1,L42T5W194H125,#1%TAB%#2%TAB%#3,%MUI_NODE_DATA%                                    ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼TREE is generally located between _SUB and _END.                   Refer to _SUB and CALL.  ║
║    │    │☼Use "ENVI @Name.Enable=Num" to set its serviceability; 0:disabled,1:enabled.                ║
║    │    │☼Use "ENVI @Name.Visible=Num" to set its visibility; 0:invisible,1:visible.                  ║
║    │    │☼Use "ENVI @Name.Sel=Node[;[*~#]Val]" to select a nod. Start from 1(the same below).         ║
║    │    │       0:unselected; 1(default):selected; 2:Toggle. *multi ~diaplay  #focus                  ║
║    │    │☼Use "ENVI @Name.Sel=?[.[x.y]][@*]VarName[;PosName]" to get select nod. @Handle *multi       ║
║    │    │       .[x.y]:nod below mouse(x.y) and Pos.                                                  ║
║    │    │☼Use "ENVI @Name.hID=[~]Node|@hID;VarName" to get hID or the other way around. ~No@          ║
║    │    │☼Use "ENVI @Name.Val=?*[+$][Node];NodeNumName" to get the numbers. +:chid $except child      ║
║    │    │☼Use "ENVI @Name.Val=?**[+$][Node];VarName" to get data of all nodes by nod                  ║
║    │    │☼Use "ENVI @Name.Val=?[Node];VarName" to get data of nod                                     ║
║    │    │☼Use "ENVI @Name.Val=[>+][Node][*[*]$][#];Val" to set the content of sp. nod.*:multi  **:add ║
║    │    │      on need. #:eliminate the redundant at the end. >:Insert in front.  +:append            ║
║    │    │☼Use "ENVI @Name.Val=-[*]Node[#Count]" to delete nodes.* to top.                             ║
║    │    │☼Use "ENVI @Name.Check=?[*][Nod@;][@]VarName" to get check state.Null:no. *All/space @Handle ║
║    │    │☼Use "ENVI @Name.Check=Nod;Check" to set the status.0:unchecked,1:checked,2:Toggle           ║
║    │    │☼Use "ENVI @Name.Enable=~?[*][Nod@;][@]VarName" to get check stat.Null:no. *All/space @Handle║
║    │    │☼Use "ENVI @Name.Enable=~Nod;Val" to set the status.0:gray,1:normal,2:Toggle                 ║
║    │    │☼Use "ENVI @Name.UPos=?[#]nod;L;T;R;B"to query pos.    #:LABEL                               ║
║    │    │☼Use "ENVI @Name.Expand=[?]nod;Name|Val" to set/query expand_state. 1:collap. 2:exp. 3:Toggle║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'UPNP'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│UPNP [$]<Params>                                                                             ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To execute the functions of BartPE.EXE                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■"$" indicates displaying the executive interface of BartPE.EXE;                             ║
║UPNP│    │■Command line params of BartPE.EXE.                                                          ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│UPNP -pnp or UPNP $-pnp                                                                      ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼This command is embedded with the executalbe codes of the new version of BartPE.EXE,and     ║
║    │    │  thus WinPE can fulfill the functions of BartPE.EXE without the file of BartPE.EXE;         ║
║    │    │☼This command only supports PE of NT5.x series and is executed in the blocking mode,ie the   ║
║    │    │  next command will not be executed until the preceding one is finished.Pay attention to the ║
║    │    │  params and their case sensitiveness.                                                       ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'USER'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│USER <UserName>,<CorpName>                                                                   ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To set the names of user and corporation in "Property" in the right click menu of            ║
║    │    │"My Computer".                                                                               ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║USER│PARA│■The params are characters.                                                                  ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│USER mdyblog.blog.163.com,无忧启动论坛                                                      ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼If there exists a single-byte English "," ,it can be replaced with a Chinese double-byte    ║
║    │    │  one or transfered to a variable.This command is only applicable to a config file.          ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'WALL'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│WALL <WallpaperFileName>                                                                     ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To set the wallpaper.                                                                        ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║WALL│PARA│■WallpaperFileName                                                                           ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│WALL %CurDrv%\outpart\WallPage.JPG                                                           ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼Supportive of environment variables and picture files in various formats.                   ║
║    │    │  This command is applicable to both command line and config file.                           ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'WAIT'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│WAIT [-sys[0]] [-pad] [-cont] [-ncd] [-freemem] [-][Time1(MS)][,VarName]                     ║
║    │    │     [*[pid|=tid]] [Delay2(MS)] [-delms:ms] [-del FileDir1]  [-del ...] ... [-cmd cmd]       ║
║    │    │WAIT -scanall|-scan:KeyVal [VarName]    //to return the scan (table_of_all_256) key values.  ║
║    │    │WAIT -sys[0] [switch/param] -cmd task_sys_proxy_command_args // async task mode.             ║
║    │    │WAIT -sys[0]cmd sys_proxy_command_args //direct command mode.  0:only on system level        ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │    │♫-cont:not to leave out the keys between two calls.Generally,at this time,wait -0 first and  ║
║    │    │  abandon the outcome. -pad:for 0-9 of NUM PAD                                               ║
║    │    │♫-ncd:not to transfer the current directory while waiting for the process or executing the   ║
║    │    │  command.(multithread)                                                                      ║
║    │    │♫"-":to stop waiting on receiving any key within the specified period of Time1.Otherwise     ║
║    │    │  waiting till time is out. freemem:free mem;alonely maybe                                   ║
║    │FUNC│  1.to continue with the command after waiting for a specified Time1.                        ║
║    │    │  2.* indicates waiting for Time1 for the process with the process ID as "pid" to finish.    ║
║    │    │    (* without a number behind indicates a parent process,** grandparent process and so on;  ║
║    │    │    * with a number behind indicates this process, ** as its parent process and so on).      ║
║    │    │    *- or *0 or absent indicates no process to wait for.Then the specified file and          ║
║    │    │    directory will be deleted respectively and another command of PECMD can be executed      ║
║    │    │    after the process ends. -sys indicates the system proxy(indirect) mode,and an absolute   ║
║    │    │    path should be contained in the file name at this time.=tid indicates thread ID.         ║
║    │    │    $Handle indicates handle.                                                                ║
║    │    │    -thread:Wait for all child thread.                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■a specified time,MS as the unit. pid can be hex numbers.                                    ║
║WAIT├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│WAIT 5000 or WAIT 0,PKey or EXEC "%MyName%" WAIT * -del  . or  WAIT 0 *123 check process 123 ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼Eg,wait for a period of time after executing the command of SHELL and then execute the      ║
║    │    │  command of LOGO to close the login screen or perform other operations.Besides,if a program ║
║    │    │  is really needed to be run after login,a shortcut can be created in the start group or     ║
║    │    │  "HKCU\Software\Microsoft\Windows\CurrentVersion\Run".                                      ║
║    │    │  WAIT will not block the graphic interface.The -del mode is applied to clearing temporary   ║
║    │    │  files(folder),which is retried regularly until it succeeds.                                ║
║    │    │☼If Time1 is 0,it indicates there is a pause and the pause can be continued by pressing any  ║
║    │    │  key,thus the circulation goes on.WAIT 0/-N can be applied to checking the key pressed down ║
║    │    │  by the user.'A'~'Z' or '0'~'9' will be returned directly,otherwise the key will be         ║
║    │    │  returned in the form of 0xNN.The variable name is PressKey by default.&&PressKey.Hex       ║
║    │    │  returns 0xNN or -1.                                                                        ║
║    │    │☼If 0<Time1<1,Time1*100000 indicates the number of dispatched messages in queue.             ║
║    │    │☼WAIT -sys0cmd  ENVI &::__PECMD.ONSHELL.LOG=D:\DEBUG.OnShell.LOG //SHELL watches over LOG    ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'WRIT'                                                                                       ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│WRIT[-UNICODE|-UNICODEB|-UTF8] [*fix] [*-nl][*v] FileName,[ModiPos],[FileData]               ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To modify the data of a specified file in the form of string(line).*fix:to treat a separate  ║
║    │    │ENTER as the newline. *-nl:not to append newline behind. *v:to write the variable. *fv:from  ║
║    │    │the variable. *c:Clear at firstly.   *nobom:NO BOM                                           ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PARA│■FileName:valid file name,supportive of environment variables interpretation; - indicates    ║
║    │    │  standard output,-- standard error output,regardless of the position.                       ║
║    │    │■ModiPos:consisting of "$","+","-" and Line ID with the format as "[$][+|-]<LineID>"; +0 by  ║
║    │    │  default.                                                                                   ║
║    │    │  "$":to unfold the environment variables in "FileData";                                     ║
║    │    │  "+":to insert a line in the position of specified line ID with "FileData";                 ║
║WRIT│    │  "-":to deleted the line with the specified line ID;                                        ║
║    │    │  "+" and "-" absent:to replace the specified line with "FileData";                          ║
║    │    │  Line ID is indicated as a number, "0":to operate to the last line.If line ID is set        ║
║    │    │  unproperly,PECMD will not perform any operation.                                           ║
║    │    │■FileData:string,data to insert or replace a certain line in the file with. ModiPos led by   ║
║    │    │  "$" indicates supporting environment variables interpretation.                             ║
║    │    │  -UNICODE -UNICODEB -UTF8 are the file codes.If there exists BOM,the encoding is based      ║
║    │    │  on BOM.Other codes:-GBK -BIG5 -UNI -UNIBE -ANSI -code number                               ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │EXMP│WRIT C:\BOOT.INI,+0,C:\AVLDR.NT6=Window_7_PE or WRIT C:\BOOT.INI,+0,C:\AVLDR.NT5=Window_PE   ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │☼WRIT is only applicable to modifying pure text files like CMD,BAT and menu config file;     ║
║    │    │  CONOUT$ indicates testing the terminal.                                                    ║
║    │    │☼WRIT and LOOP should be in a separate line and should not be nested in such command as      ║
║    │    │  FIND,IFEX and TEAM.                                                                        ║
║    │    │☼Supportive: \\?\Harddisk0Partition2\A.TXT   \\?\HarddiskVolume5\A.TXT  \\?\ImDisk0\A.TXT    ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'LineMergChar'                                                                               ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FORM│ \ command sequence                                                                          ║
║ \  │    │The first non null character is \ in each line.                                              ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │FUNC│To merge the line into the previous one in case the line becomes too long.                   ║
║    ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │REM │Null characters before \ will be abandoned,as well as the ones behind it if exist.           ║
╠════╪════╪═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'DLL'  PECMD.DLL  DLL version of PECMD                                                       ║
║ D  ├────┼─────────────────────────────────────────────────────────────────────────────────────────────╢
║ L  │FORM│CALL $**c **1 PECMD.DLL,main,command line  or  CALL $**1 PECMD.DLL,main_,command line        ║
║ L  │    │rundll32.exe  PECMD.DLL,main command line                                                    ║
╠════╧════╧═════════════════════════════════════════════════════════════════════════════════════════════╣
║                                     Related materials for WINDOWS OS                                  ║
╠═══════════════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'Vkeylist' 'WINDOWS KeyValList'                                                              ║
║-------------------------------------------------------------------------------------------------------║
║1.Key Value(Virtual Key,is the key value redefined by windows,corresponding to wParam of WM_KEYDOWN)   ║
║  VKey           KeyVal     KeyVal│    Key           KeyVal KeyVal│   Key            KeyVal KeyVal     ║
║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_ALT            0x12        18  │  VK_NUMPAD0        0x60   96  │  VK_F20            0x83  131       ║
║VK_PAUSE          0x13        19  │  VK_NUMPAD1        0x61   97  │  VK_F21            0x84  132       ║
║VK_CAPITAL        0x14        20  │  VK_NUMPAD2        0x62   98  │  VK_F22            0x85  133       ║
║VK_KANA           0x15        21  │  VK_NUMPAD3        0x63   99  │  VK_F23            0x86  134       ║
║VK_HANGEUL        0x15        21  │  VK_NUMPAD4        0x64  100  │  VK_F24            0x87  135       ║
║VK_HANGUL         0x15        21  │  VK_NUMPAD5        0x65  101  │  VK_NUMLOCK        0x90  144       ║
║VK_JUNJA          0x17        23  │  VK_NUMPAD6        0x66  102  │  VK_SCROLL         0x91  145       ║
║VK_FINAL          0x18        24  │  VK_NUMPAD7        0x67  103  │  VK_LSHIFT         0xA0  160       ║
║VK_HANJA          0x19        25  │  VK_NUMPAD8        0x68  104  │  VK_RSHIFT         0xA1  161       ║
║VK_KANJI          0x19        25  │  VK_NUMPAD9        0x69  105  │  VK_LCONTROL       0xA2  162       ║
║VK_ESCAPE         0x1B        27  │  VK_MULTIPLY       0x6A  106  │  VK_RCONTROL       0xA3  163       ║
║VK_CONVERT        0x1C        28  │  VK_ADD            0x6B  107  │  VK_LMENU          0xA4  164       ║
║VK_NONCONVERT     0x1D        29  │  VK_SEPARATOR      0x6C  108  │  VK_RMENU          0xA5  165       ║
║VK_ACCEPT         0x1E        30  │  VK_SUBTRACT       0x6D  109  │  VK_PROCESSKEY     0xE5  229       ║
║VK_MODECHANGE     0x1F        31  │  VK_DECIMAL        0x6E  110  │  VK_ATTN           0xF6  246       ║
║VK_SPACE          0x20        32  │  VK_DIVIDE         0x6F  111  │  VK_CRSEL          0xF7  247       ║
║VK_PRIOR          0x21        33  │  VK_F1             0x70  112  │  VK_EXSEL          0xF8  248       ║
║VK_NEXT           0x22        34  │  VK_F2             0x71  113  │  VK_EREOF          0xF9  249       ║
║VK_END            0x23        35  │  VK_F3             0x72  114  │  VK_PLAY           0xFA  250       ║
║VK_HOME           0x24        36  │  VK_F4             0x73  115  │  VK_ZOOM           0xFB  251       ║
║VK_LEFT           0x25        37  │  VK_F5             0x74  116  │  VK_NONAME         0xFC  252       ║
║VK_UP             0x26        38  │  VK_F6             0x75  117  │  VK_PA1            0xFD  253       ║
║VK_RIGHT          0x27        39  │  VK_F7             0x76  118  │  VK_OEM_CLEAR      0xFE  254       ║
║VK_DOWN           0x28        40  │  VK_F8             0x77  119  │  VK_POWER          0xFF  255       ║
║VK_SELECT         0x29        41  │  VK_LALT           0xA4  164  │  VK_RALT           0xA5  165       ║
║-------------------------------------------------------------------------------------------------------║
║//MENU key is the ALT key                                                                              ║
║VK_XBUTTON1       0x05   5   //Windows 2000/XP: X1 mouse button                                        ║
║VK_XBUTTON2       0x06   6   //Windows 2000/XP: X2 mouse button                                        ║
║-------------------------------------------------------------------------------------------------------║
║Key     Vkey      KeyVal KeyVal AltStr1 AltStr2  AltStr3   AltStr4                                     ║
║;:   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        0xDC  220     \|       \        |                                                  ║
║]}   VK_POSTSCRAP   0xDD  221     ]}       ]        }        VK_]                                      ║
║'"   VK_QOUTE       0xDE  222     '"       '        "                                                  ║
╠════╤════╤═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'fenqutype'  'operand of partition type'                                                     ║
║-------------------------------------------------------------------------------------------------------║
║2.operand of partition type,hex                                                                        ║
║ 0  NULL(to hide totally) 1c  HIDE_Win95FAT32LBA 70  DiskSecure Mult  bb  Boot Wizard hid              ║
║ 1  FAT12                 1e  HIDE_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  LinuxSWAPPART    c6  DRDOS/sec (FAT-              ║
║ 5  EXT PART              40  Venix 80286        83  Linux            c7  Syrinx                       ║
║ 6  FAT16                 41  PPC PReP Boot      84  hideOS/2 C:      da  Non-FS data                  ║
║ 7  HPFS/NTFS             42  LDM                85  LinuxEXTPART     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/HIDE_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_EXT_PART_LBA    53  OnTrack DM6 Aux    a0  IBM Thinkpad hi  ee  EFI GPT                      ║
║10  OPUS                  54  OnTrackDM6         a5  FreeBSD          ef  EFI (FAT-12/16/              ║
║11  HIED_FAT12            55  EZ-Drive           a6  OpenBSD          f0  Linux/PA-RISC b              ║
║12  HIDE_FAT/Compaqdiagno 56  Golden Bow         a7  NeXTSTEP         f1  SpeedStor                    ║
║14  HIDE_FAT16<32M        5c  Priam Edisk        a8  Darwin UFS       f4  SpeedStor                    ║
║16  HIDE_FAT16            61  SpeedStor          a9  NetBSD           f2  DOS secondary                ║
║17  HIDE_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  HIDE_Win95FAT         65  Novell Netware     b8  BSDI swap        ff  BBT/XENIX bad blocks table   ║
║13  btron                 2a  atheOS  AFS        2b  Sylstor          32  NOS                          ║
║35  JFSonos/2oreCS        7e  linux              7f  linu x           d7  HIDE_DELL                    ║
║dd  HIDE_DELL             ee  PROTECTEDMBR       ef  EFI SYS_PART     bc  ATI_SEC_ZONE                 ║
║fd  Linux RAID            fe  SpeedStor                                                                ║
║------------------------------- G P T PARTITION TYPE GUID ---------------------------------------------║
║EBD0A0A2-B9E5-4433-87C0-68B6B72699C7  MS Basic Data(NTFS/FAT32/FAT16/FAT12 share the same GUID)        ║
║024DEE41-33E7-11D3-9D69-0008C781F39F  MBR partition scheme                                             ║
║C12A7328-F81F-11D2-BA4B-00A0C93EC93B  EFI system                                                       ║
║21686148-6449-6E6F-744E-656564454649  BIOS boot                                                        ║
║E3C9E316-0B5C-4DB8-817D-F92DF00215AE  Microsoft reserved                                               ║
║5808C8AA-7E8F-42E0-85D2-E1E90434CFB3  LDM metadata                                                     ║
║AF9B60A0-1431-4F62-BC68-3311714A69AD  LDM data                                                         ║
║DE94BBA4-06D1-4D40-A16A-BFD50179D6AC  Microsoft recovery                                               ║
║75894C1E-3AEB-11D3-B7C1-7B03A0000000  HP-UX data                                                       ║
║E2A1E728-32E3-11D6-A682-7B03A0000000  HP-UX service                                                    ║
║0FC63DAF-8483-4772-8E79-3D69D8477DE4  Linux data                                                       ║
║A19D880F-05FC-4D3B-A006-743F0F84911E  Linux RAID                                                       ║
║0657FD6D-A4AB-43C4-84E5-0933C84B4F4F  Linux swap                                                       ║
║E6D6D379-F507-44C2-A23C-238F2A3DF928  LVM                                                              ║
║8DA63339-0007-60C0-C436-083AC8230908  Linux reserved                                                   ║
║83BD6B9D-7F41-11DC-BE0B-001560B84F0F  FreeBSD boot                                                     ║
║516E7CB4-6ECF-11D6-8FF8-00022D09712B  FreeBSD data                                                     ║
║516E7CB5-6ECF-11D6-8FF8-00022D09712B  FreeBSD swap                                                     ║
║516E7CB6-6ECF-11D6-8FF8-00022D09712B  FreeBSD UFS                                                      ║
║516E7CB8-6ECF-11D6-8FF8-00022D09712B  FreeBSD vinum volume manager                                     ║
║516E7CBA-6ECF-11D6-8FF8-00022D09712B  FreeBSD ZFS                                                      ║
║48465300-0000-11AA-AA11-00306543ECAC  Mac OS X (HFS+)                                                  ║
║55465300-0000-11AA-AA11-00306543ECAC  Mac OS X Apple UFS                                               ║
║6A898CC3-1DD2-11B2-99A6-080020736631  Mac OS X ZFS                                                     ║
║52414944-0000-11AA-AA11-00306543ECAC  Mac OS X Apple RAID                                              ║
║52414944-5F4F-11AA-AA11-00306543ECAC  Mac OS X Apple RAID offline                                      ║
║426F6F74-0000-11AA-AA11-00306543ECAC  Mac OS X Apple boot                                              ║
║4C616265-6C00-11AA-AA11-00306543ECAC  Mac OS X Apple label                                             ║
║5265636F-7665-11AA-AA11-00306543ECAC  Mac OS X Apple TV recpvery                                       ║
║6A82CB45-1DD2-11B2-99A6-080020736631  Solaris boot                                                     ║
║6A85CF4D-1DD2-11B2-99A6-080020736631  Solaris root                                                     ║
║6A87C46F-1DD2-11B2-99A6-080020736631  Solaris swap                                                     ║
║6A8B642B-1DD2-11B2-99A6-080020736631  Solaris backup                                                   ║
║6A898CC3-1DD2-11B2-99A6-080020736631  Solaris /usr                                                     ║
║6A8EF2E9-1DD2-11B2-99A6-080020736631  Solaris /var                                                     ║
║6A90BA39-1DD2-11B2-99A6-080020736631  Solaris /home                                                    ║
║6A9283A5-1DD2-11B2-99A6-080020736631  Solaris EFI_ALTSCTR                                              ║
║6A945A3B-1DD2-11B2-99A6-080020736631  Solaris reserved1                                                ║
║6A9630D1-1DD2-11B2-99A6-080020736631  Solaris reserved2                                                ║
║6A980767-1DD2-11B2-99A6-080020736631  Solaris reserved3                                                ║
║6A96237F-1DD2-11B2-99A6-080020736631  Solaris reserved4                                                ║
║6A8D2AC7-1DD2-11B2-99A6-080020736631  Solaris reserved5                                                ║
║49F48D32-B10E-11DC-B99B-0019D1879648  NetBSD swap                                                      ║
║49F48D5A-B10E-11DC-B99B-0019D1879648  NetBSD FFS                                                       ║
║49F48D82-B10E-11DC-B99B-0019D1879648  NetBSD LFS                                                       ║
║49F48DAA-B10E-11DC-B99B-0019D1879648  NetBSD RAID                                                      ║
║2DB519C4-B10F-11DC-B99B-0019D1879648  NetBSD concatenated                                              ║
║2DB519EC-B10F-11DC-B99B-0019D1879648  NetBSD encypted                                                  ║
║53746F72-6167-11AA-AA11-00306543ECAC  Apple Core Storage (i.e. Lion FileVault) partition               ║
║7C3457EF-0000-11AA-AA11-00306543ECAC  APFS(Apple File System)                                          ║
║-------------------------------------------------------------------------------------------------------║
║ѺThere is no difference in mounting partitions with this PECMD and SHOW except partition 0 and the     ║
║  extended partition.Numbers are consulted by users and offer a hint to the automated program.So it is ║
║  understandable for me to add some more.                                                              ║
║  15  HiddenExtPart          1f  HiddenWin95ExtPartLBA                   95  HiddenLinuxExtPart        ║
╠════╤════╤═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'disktype'  'DiskMediaType'                                                                  ║
║-------------------------------------------------------------------------------------------------------║
║ѺAre there any ways to obtain the original file system and the rest space of the partition with the    ║
║  partition ID as 0x12?                                                                                ║
║  If the partition is not mounted,first mount with the command of SUBJ temporarily and then query with ║
║  "FIND" and "IFEX",like:                                                                              ║
║   FIND  C:\=?,VarName    //to query the whole space bytes.                                            ║
║   IFEX  C:\=?,VarName    //to query the rest of space bytes.                                          ║
║-------------------------------------------------------------------------------------------------------║
║3.DiskMediaType:    HEX   DEC     DiskMediaType:   HEX   DEC       DiskMediaType:    HEX   DEC         ║
║  Unknown          = 0x00,  0      F5_180_512       = 0x09,  9       F3_1Pt23_1024    = 0x12, 18       ║
║  F5_1Pt2_512      = 0x01,  1      F5_160_512       = 0x0a, 10       F5_1Pt23_1024    = 0x13, 19       ║
║  F3_1Pt44_512     = 0x02,  2      RemovableMedia   = 0x0b, 11       F3_128Mb_512     = 0x14, 20       ║
║  F3_2Pt88_512     = 0x03,  3      FixedMedia       = 0x0c, 12       F3_230Mb_512     = 0x15, 21       ║
║  F3_20Pt8_512     = 0x04,  4      F3_120M_512      = 0x0d, 13       F8_256_128       = 0x16, 22       ║
║  F3_720_512       = 0x05,  5      F3_640_512       = 0x0e, 14       F3_200Mb_512     = 0x17, 23       ║
║  F5_360_512       = 0x06,  6      F5_640_512       = 0x0f, 15       F3_240M_512      = 0x18, 24       ║
║  F5_320_512       = 0x07,  7      F5_720_512       = 0x10, 16       F3_32M_512       = 0x19  25       ║
║  F5_320_1024      = 0x08,  8      F3_1Pt2_512      = 0x11, 17                                         ║
╠═══════════════════════════════════════════════════════════════════════════════════════════════════════╣
║                                 PECMD2012 - related materials of the interpreter                      ║
╠════╤════╤═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │''  'script converted to a command line'                                                     ║
║-------------------------------------------------------------------------------------------------------║
║1.the way to convert a script to a command line:                                                       ║
║  1>eliminate all the notes first.2>replace all "space; ; space" with "space; ; ; space"(if there are  ║
║    more"; ",add one more "; "). 3>replace all newlines with "space; ; space"(Space only refers to     ║
║    0x20).Add one more switch of "/L " before it(indicating multiline and lower case permitted).These  ║
║    are the new command line params.The switch /L will not be transfered to the program as a param.    ║
║    The first line is treated as params of the program./l:the first line is treated as commands as well║
║    . /L:commands start from the second line.                                                          ║
║Δcommand line on line,press Ctrl-Enter and execute the script(in the memory).Click the number below    ║
║  <execution> to change the height.                                                                    ║
╠════╤════╤═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │''  'Note'                                                                                   ║
║-------------------------------------------------------------------------------------------------------║
║2.note character:"" or "`" or "//",and there is a null character at the head of line or the beginning  ║
║  of the note and the null character is treated as part of the note.                                   ║
║ΔHow to input the null character at the end of the line? USe the command of TEAM and put a | and the   ║
║  next command behind the space at the end of the line.It is also practicable to put only one |.Or the ║
║  last part can be transfered to a varriale like %SPACE%.                                              ║
║ΔNotes are disalbed in a command line by default while enalbed in a config file by default.            ║
╠════╤════╤═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │''  'embed and initialize script'                                                            ║
║-------------------------------------------------------------------------------------------------------║
║3.1.to initialize the script:the script in the resourc of the program SCRIPTINIT\100\2052. When start  ║
║    the program,initialization will be automatically executed before the normal process.               ║
║3.2.to embed a script:add the script directly to the resource SCRIPT\101\2052.It will be automatically ║
║    executed and exit when the program is started and the command line params will be recognized as the║
║    ones of the script.                                                                                ║
║    to add more embedded script:use the command of "LOAD",like:LOAD #102 A B or LOAD #103              ║
╠════╤════╤═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'ICOLIST'  'IconID'                                                                          ║
║-------------------------------------------------------------------------------------------------------║
║4.IconID                                                                                               ║
║  #2:naturalID,the internal group ID will be renumbered respectively from 0.(Icon Group)               ║
║  ##2:internal group ID(Icon Group)        [If the file name is absent,#1 is opposite to ##1]          ║
║  ###2:internal IconId(Icon)                                                                           ║
╠════╤════╤═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │''  'plugin'                                                                                 ║
║-------------------------------------------------------------------------------------------------------║
║5.plugin                                                                                               ║
║1> plugin type                                                                                         ║
║(1)script:       #ID  WCI WCS  WCE  WCZ ...(including user-defined format)                             ║
║(2)executable file:EXE    COM  NTR  NTE  CMD  BAT                                                      ║
║(3)DLL: DLL    DLX                                                                                     ║
║-------------------------------------------------------------------------------------------------------║
║2> initialize                                                                                          ║
║ENVI^ LoadPlugin=[BasicFileName]                                                                       ║
║BasicFileName is the name of this PECMD by default.                                                    ║
║BasicFileName is automatically extended to a full path BasicFileName2.                                 ║
║Suppose BasicFileName2 is X:\windows\system32\pecmd.exe,                                               ║
║the reference path X:\windows\system32\pecmd                                                           ║
║will be executed only once when initialization is performed many times.                                ║
║It can be placed in the startup script to be automatically initialized.                                ║
║-------------------------------------------------------------------------------------------------------║
║3.1> embedded script                                                                                   ║
║internal resource ID beneath SCRIPT.The script can be a script file compressed by the command of  CMPS.║
║internal plugin list:resource INDATA\4                                                                 ║
║format:                                                                                                ║
║LOAD: CMDName  #ID[+Offset[+LenLimit]                                                                  ║
║                                                                                                       ║
║The internal plugin list can be compressed by CMPS.                                                    ║
║                                                                                                       ║
║LOAD: HELLOIN  #100                                                                                    ║
║The command is: HELLOIN                                                                                ║
║HELLOIN  A  B C                                                                                        ║
║will execute the embedded script #100,with the param "   A  B C"                                       ║
║-------------------------------------------------------------------------------------------------------║
║3.2> script                                                                                            ║
║RefPath.CMD[+Offset[+LenLimit]].Suffix                                                                 ║
║Suffix:WCI WCS  WCE  WCZ                                                                               ║
║X:\windows\system32\pecmd.HELLO.WCZ                                                                    ║
║The command is:HELLO                                                                                   ║
║-------------------------------------------------------------------------------------------------------║
║4> executable file                                                                                     ║
║RefPath.ExecMarkCMD.Suffix                                                                             ║
║Suffix:EXE    COM  NTR  NTE  CMD  BAT                                                                  ║
║NTR,NTE are renamed from EXE or COM                                                                    ║
║ExecMark:combinations of  =!@                                                                          ║
║X:\windows\system32\pecmd.=!HELLO2.EXE                                                                 ║
║The command is:HELLO2                                                                                  ║
║automatically in the hidden-waiting mode                                                               ║
║-------------------------------------------------------------------------------------------------------║
║5> DLL                                                                                                 ║
║RefPath.$CMD.Suffix                                                                                    ║
║Suffix:DLL  DLX                                                                                        ║
║DLX is renamed from DLL                                                                                ║
║X:\windows\system32\pecmd.$HELLO3.DLL                                                                  ║
║The command is:HELLO3                                                                                  ║
║-------------------------------------------------------------------------------------------------------║
║6> PECMD special plugin library                                                                        ║
║RefPath.pecmdplugin.*.PEI                                                                              ║
║                                                                                                       ║
║The command name list is in the PEI file.                                                              ║
║RefCode:PECMD_PLUGIN.PluginCode.ZIP                                                                    ║
║                                                                                                       ║
║priority to execute:                                                                                   ║
║PECMD special plugin library                                                                           ║
║#Number                                                                                                ║
║WCI WCS WCE WCZ                                                                                        ║
║EXE COM  NTR  NTE BAT CMD                                                                              ║
║DLL                                                                                                    ║
║not to continue searching if found.                                                                    ║
║                                                                                                       ║
║ΔPlugins are prior to the external commands without EXEC and wcs script file without LOAD.             ║
╠════╤════╤═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'DIYSIZE'  'DiyDragDrop'                                                                     ║
║-------------------------------------------------------------------------------------------------------║
║ΔIf you need to contract the occupied disk space,the help document(a bit larger) can be removed from   ║
║  the resource without influencing the execution.It will not occupy the memory if not removed.         ║
║ΔThe script can be dragged to the command line for editing and dragged to the HELP zone,it will be     ║
║  displayed and executed(compressible).                                                                ║
╠════╤════╤═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'DIYPE'  'PEDIY'                                                                             ║
║-------------------------------------------------------------------------------------------------------║
║Ѻessential materials for PE DIY                                                                        ║
║  to acquire the authority.                                                                            ║
║  Add the authority administration first and acquire the "authority of administrator" when you are     ║
║  about to make PE.--aiming at win7/win8 PE.                                                           ║
║  Suppose PE is mounted to the host Z:\PEDir.                                                          ║
║  to execute in command line:takeown /f  "Z:\PE"  /r /d y & icacls  "Z:\PE" /grant administrators:F /t ║
║  (to make sure that there exist two commands of takeown and icacls in the system.If not,they can be   ║
║  copied from a normal system.)                                                                        ║
║  *Mostly it is due to FAT32 file system that the authority problem above results in the failure of    ║
║  installing and registering *.DLL or driver.                                                          ║
║  Please pay attention whether the file system is NTFS or FAT32 when you are making PE.                ║
╚═══════════════════════════════════════════════════════════════════════════════════════════════════════╝
 ----------------------------------------------Dividing Line---------------------------------------------
╔═══════════════════════════════════════════════════════════════════════════════════════════════════════╗
║                            Special statement about PECMD - WinPE Commander                            ║
╠════╤════╤═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │ 'THX'                                                                                       ║
║    ├────┴─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │ѺThanks to Lxl1638 for his source code of PECMD2.4. PECMD2012 is redesigned with reference to it. ║
║    │ѺThanks to Yonsm for his source code of XCMD.PECMD is improved to perfection based on XCMD V2.2.  ║
║    │ѺThanks to friends from Wuyou BBS for their suggestions.                                          ║
║THX │ѺThanks to Wuyou BBS for providing the place for discussion.                                      ║
║    │ѺThanks to qinjg8008 for his source code to set the virtual memory.                               ║
║    │ѺThanks to Sherpya for his source code of XPE Plugin.                                             ║
╠════╤════╤═════════════════════════════════════════════════════════════════════════════════════════════╣
║    │CMD │'Permission'                                                                                 ║
║    ├────┴─────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PECMD2012 NonCopyRight Permission:                                                                ║
║    │ѺAny individual or organization(including commercial ones) can use it freely.It is a reverse      ║
║    │  engineering and can be modified in binary...                                                    ║
║    │ѺIf you have used or modified any source code of it,it is strongly suggested that the projects    ║
║    │  employing these source codes,as well as the code in them,should be brought to public.           ║
║    │  It is permitted that the source code is not open to some commercial organizations,yet its       ║
║    │  development interface and documents are obligated to.                                           ║
║    │ѺKeep their versions consistent as possible.                                                      ║
║    │ѺNo such restrictions for internal use only.                                                      ║
║    │                                                    DSystem    mdyblog.blog.163.com     2012.1.22 ║
║    ├──────────────────────────────────────────────────────────────────────────────────────────────────╢
║    │PECMD2.4 Permission:                                                                              ║
║PERM│ѺThis application as well as its source code is available freely.                                 ║
║    │ѺIf you have used or modified any source code of it,it is demanded that the projects employing    ║
║    │  these source codes,as well as the code in them,should be brought to public.Otherwise,you are not║
║    │  permitted to use any part of the source code.                                                   ║
║    │ѺUnlimited number of copies of this application can be duplicated,distributed and spread as long  ║
║    │  as it is ensured that each copy,each time of distribution and spreading are complete and real,  ║
║    │  including its programs,electric documents,copyright and trademark declaration.                  ║
║    │ѺA statement is made hereby that the author of the application is not oligated to ensure its      ║
║    │  applicability or give any guarantee that no breakdown arises during its use,nor responsible for ║
║    │  any theoretical or practical loss brought about to any user by using it.                        ║
║    │ѺIf you use this application,it indcates that you have accepted this agreement tacitly.           ║
║    │ѺFor more information,please access: WWW.YONSM.NET,BBS.WUYOU.COM.                                 ║
║    │                                                                                                  ║
║    │Yonsm                                                                            Lxl1638          ║
║    │Yonsm@163.com                                                                    Lxl1638@21cn.com ║
║    │WWW.Yonsm.NET                                                                    BBS.WUYOU.COM    ║
║    │2007.1.24,Hangzhou                                               07.03.01,Maoming No.2 High School║
╚════╧══════════════════════════════════════════════════════════════════════════════════════════════════╝

                                                                        DSystem      mdyblog.blog.163.com

╔═══════════════════════════════════════════════════════════════════════════════════════════════════════╗
║ѺTo show your benevolence,please support donation to PECMD,WinCMD,WimTool                              ║
║                                                                                                       ║
║   PECMD,WinCMD and WimTool are the free tools created for WinPE by DSystem,Lxl1638(Li Shiting) and    ║
║Yonsm in recent years.PECMD has been a login command and a command interpreter for WinPE both at home  ║
║and abroad.WinCMD can also be used as an alternative command interpreter of a normal OS to strengthen  ║
║and supplement the functions of the batch script.                                                      ║
║   If you think that these tools are of practical use in system installation and maintenance and are   ║
║not bothered,please donate to PECMD,WinCMD and WimTool.                                                ║
║                                                                                                       ║
║For the customized version of Li,                                                                      ║
║please pay to :6227 0031 4206 0043 437 Li Shiting Maoming local branch,Guangdong branch,               ║
║               China Construction Bank                                                                 ║
║Email address :lxl1638@21cn.com                                                                        ║
║Time to finish:                                                                                        ║
║   For the individual and professional version of Li,I will finish it within 2 weekdays on receiving   ║
║your email.                                                                                            ║
║   For the group version of Li,I will finish it within one week on receiving your email.               ║
║   For the customized version of Li,I will assess the practicability of the task and fix the finish    ║
║time according to its difficulty.                                                                      ║
║                                                                                                       ║
║   Thanks to the bbs administrators and those who offer their suggestions,ideas and other information  ║
║to PECMD,WinCMD and WimTool.                                                                           ║
║   Thank you for your support and donation to PECMD,WinCMD and WimTool.                                ║
║   Thanks to all the users of PECMD,WinCMD and WimTool!Happy New Year to you and every wish comes true!║
║                                                                                                       ║
║   You are now using a free version of PECMD2012,which does not have any function restriction or mark. ║
║                                                                                                       ║
║                                                          Li Shiting,before the Spring Festival of 2010║
║                          (appropriately modified by DSystem,and once more by 988668 on July 13th,2012)║
╚═══════════════════════════════════════════════════════════════════════════════════════════════════════╝