PECMD的主要作用是什麼

本文的前三部分取自PECMD技術社羣的什麼是PECMD?PECMD的歷史、PECMD在WinPE中的應用。本人做了一些修改。特此說明!

一、PECMD是什麼

PECMD是WinPE Commander,即 WinPE 命令解釋工具,也是國內及其它一些國家 WinPE 的登入命令和命令解釋工具。

通俗的來講,它是WINPE非常核心的一個程式,為WINPE提供了大量命令,可以實現建立快捷方式,執行程式,設定桌布、解析度,安裝網路等各種強大的操作。甚至我們還可以用PECMD命令來編寫程式。

由於其強大功能,可媲美小型的整合開發環境,故也可以作為正常系統中的應用開發平臺。

PECMD目前有兩個主流版本,分別為PECMD4.0和PECMD2012。

PECMD4.0是Lxl1638在2007年至2011年期間為 Windows 預安裝環境(簡稱 WinPE)所寫的免費工具。根據Lxl1638在無憂論壇釋出的帖子,PECMD從2.4一直升級到4.0版,經歷了50多個版本的更新(我猜測因為PECMD是在XCMD2.2的基礎上開發的,所以初始版本是從2.x開始的)。

PECMD2012是在PECMD4.0停止維護後,由mdyblog在參考PECMD2.4公開原始碼的基礎上重新設計而成的,它基本相容了Lxl1638的PECMD,並增加了部分命令及功能,於2012年釋出並持續維護至今。相較於PECMD4.0,PECMD2012提供了不同的版本,具有更強的可玩性。並提供了一個PECMD命令編輯器PECMDIT。

目前大部分Windows PE使用的是PECMD2012。

二、PECMD的歷史

2001年~2006年(早期的WinPE1.x時代),WindowsPE在初始化SHELL時,採用的是XPELOGON程式;

2007年,由於XPELOGIN配置嚴謹、安全但登入速度慢等原因,Yonsm開發了更自由、快速的XCMD來替代XPELOGIN,並提供了更多的擴充套件命令;

2007年,Lxl1638在XCMD2.2原有17條命令基礎上修改完善了7條命令(實際更多),補充了20條命令,PECMD誕生;

2008年~2010年,Lxl1638在開發WimTool時,開發了WinCMD,並吸收了PECMD的特性;

2011年,PECMD停止了維護,版本號最終停留在了V4.0.2011.0501,總共提供了91條命令;

2012年~今天,mdyblog在參考PECMD2.4公開原始碼的基礎上重新設計開發了PECMD的新分支PECMD2012。

三、PECMD的作用

PECMD最大的作用是在WindowsPE環境中用於初始化並登入Shell,設定啟動過程相關引數,建立WINPE軟體桌面及開始選單快捷方式等。

另外我們還可以利用其強大自由的擴充套件性製作出許多簡單實用的工具,如果有足夠的時間和精力,你完全可以用它開發出常規的桌面應用。

PECMD寫的程式

四、PECMD的變數

PECMD內建了一些(環境)變數的支援:

CurDir ---- 當前目錄

CurFile ---- 配置檔名稱

Desktop ---- 桌面

Favorites ---- 收藏夾

MyName ---- 自身檔名

IECache ---- IE臨時目錄

Personal ---- 我的文件

Programs ---- 程式

SendTo ---- 傳送到

StartMenu ---- 開始選單

Startup ---- 啟動選單

QuickLaunch ---- 快速啟動欄

SystemRoot ---- 系統資料夾

這裡列舉的是PECMD4.0的內建變數,PECMD2012增加了部分變數,詳情請看PECMD說明檔案。

下面簡單舉例解釋變數的使用方法:

例一:要在桌面建立一個連結,我們可以這樣寫命令:

LINK �sktop%/Opera瀏覽器,%ProgramFiles%/opera/opera.exe

這個 �sktop%就是變數。我們在寫命令的時候必須在變數名前後加一對百分號。

如果是在CMD批處理檔案中執行PECMD命令時,若要使用PECMD內建的環境變數,則要用雙對百分號將其包圍,如%�sktop%%。

例二:把當前目錄下檔名為“wall”的圖片設定為桌布。我們可以這樣寫:

WALL %curdir%/wall.jpg

這裡注意,配置檔案必須和wall.jpg在同一資料夾內。假設wall.jpg在Windows下system32資料夾內。如果我們不用變數,則必須這樣寫:

WALL %WINDIR%/SYSTEM32/wall.jpg

用了變數,可以減輕我們的工作量,使得程式碼更簡易。

五、PECMD的視窗控制元件

PECMD支援建立視窗及一些視窗控制元件。

ComboBox ----下拉選擇框

Button ----按鈕控制元件

Picture ----影象區域控制元件

CheckBox ----覈取方塊控制元件

Edit ----編輯框控制元件

HotKey ----系統熱鍵

PopupMenu---- 托盤圖示選單

Radio ----單選框控制元件

ProgressBar ----進度條控制元件

Group ----分組面板

Static ----文字標籤控制元件

Timer ----定時器控制元件

這裡列舉的是PECMD4.0的視窗控制元件,PECMD2012增加了部分控制元件,詳情請看PECMD說明檔案。

下圖是利用PECMD編寫的小程式,這裡就涉及到了PECMD的視窗控制元件。

六、PECMD的命令

PECMD4.0一共有91個命令,而PECMD2012則有123個命令。最常用的主要有EXEC、LINK、LOAD、TEXT、HOTK、USER、WALL等十幾個命令。每個命令都帶有一些引數。

比如:

TEAM EXEC =!ime/freeime.exe `安裝極點五筆

LINK %Programs%/硬體檢測/記憶體測試,硬體檢測/memtest.exe `建立快捷方式

LOAD "X:/PROGRAM FILES/TY.INI" `載入配置檔案

TEAM TEXT 建立常用程式快捷方式及軟體關聯...|WAIT 1200 `顯示文字

具體的使用方法清參考PECMD的說明檔案。

如果你想靈活掌握PECMD命令的使用,可以多參考WINPE創作者的PECMD.INI(也可能其他名字)檔案。多向高手學習。

PECMD的指令碼檔案格式支援WCE、WCI、WCS、WCX、INI、INF、TXT、LOG等以及任意自定的格式。為了規範,PE 的 LOAD 配置檔案用 INI,驅動安裝用 INF,而指令碼則使用 WCE、WCI、WCS、WCX;個人測試建議用 WCI WCX 或在檔名稱前加自定義的註釋字元;而壓縮一般使用 WCZ、WCM、WZM 等,日誌使用LOG(預設值),內建幫助文字用 TXT-ANSI 編碼。自定指令碼格式必須確保自定的指令碼格式符合系統定義的文字指令碼規格規範,否則會出錯。

七、PECMD小技巧

我們用PECMD寫的程式碼一般必須在WINPE環境下使用。正常系統下缺乏PECMD程式的支援是無法執行的。那麼如果想在正常系統下執行,我們可以把程式碼內建到PECMD中。

示例如下:

比如我們要寫一個DISM映像工具的小程式。

我們用Resoure Hacker開啟PECMD.exe檔案,找到“SCRIPT”,單擊展開101-2052。然後把程式碼複製進去並編譯指令碼。然後另存為即可。這樣就可以脫離WINPE環境執行了。

我們可以把PECMD.EXE改名為DISM映像工具.exe,還可以修改圖示組,換成你想要的ICO圖片。