下列是用於 CA DMM 指令檔中的「一般」指令:
將控制流跳到立即迴圈的結尾並執行迴圈之後的第一個指令。 這與傳回不同,傳回會離開所有迴圈及函數範圍。 Break 只在迴圈中有意義。
function Foo() { while (true) { while (z < 5) { ... if (x == false) { break; // 跳到 while (z < 5) {} 之後的那一行 } if (y == true) { return 5; // 立即從 Foo() 返回 } } if (x == false) { break; // 跳到 while (true) {} 之後的那一行 } } ... return -1; // 立即從 Foo() 返回
將二進位字串轉換為 ASCII 字串。 它有一個必要的參數,即包含要轉換的二進位資料的字串。 第二個參數是選擇性參數,而且是二進位。 如果布林值為真,則會將它轉換為 UNICODE 字串。 但是,如果為假,則會將它轉換為 ASCII 字串。
二進位字串
布林值
ConvertBinaryToString(<值>,[布林]);
var result = ConvertBinaryToString("000FFFDCB709E")
將 ASCII 字串轉換為二進位字串。 它有一個必要的參數,即要轉換的 ASCII 字串。 第二個參數是選擇性參數。 如果此參數為真,則會將它轉換為 UNICODE 二進位。
ASCII 字串
布林值
ConvertStringToBinary(<值>,[布林]);
var result = ConvertStringToBinary("將這個字串轉換為二進位")
指定與指令檔相關聯的應用程式。 只有一個應用程式可以跟指令檔相關聯。 在來源電腦上,會從 Detection 函數呼叫它。 在目的地電腦上,可以從任何位置呼叫它來解析應用程式路徑。 解譯器會解析 APPLICATIONPATH 關鍵字,它是無效的,且不應該在發出此呼叫之前使用。 指令檔應會在 Detection 函數中呼叫 Detect 來避免不必要的處理。
Detect 的參數是執行檔名稱及選擇性的登錄機碼值。 這兩個參數都是字串值。 登錄值路徑參數是登錄值的完整路徑,其中包含執行檔的路徑。 如果登錄值是預設參數,路徑應以機碼名稱及斜線結尾 (請參閱下列範例)。 在 Detection 函數中,指令檔必須檢查 Detect 的傳回值來判斷要繼續處理指令檔還是要終止指令檔。
執行檔名稱 (字串值)
登錄值路徑 (字串值)
Detect ( <執行檔名稱>, [Registry path] );
if( Detect( "MyApp.exe", "HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\App Paths\\MyApp.exe\\" ) == false) { return; } if (Detect ( <執行檔名稱>) == false) return;
執行執行檔或 dll。 如果 execute 找不到要呼叫的檔案或 dll,函數會傳回假。
第一個參數是要執行的項目的路徑。 如果是 dll 的路徑,API 函數必須在兩個冒號之後。 dll 呼叫的格式為 PATH::APIFunctionName。 dll 的「執行」只會尋找兩種函數類型中的呼叫:
int FunctionName();
int FunctionName( const char * );
如果呼叫使用指令行引數,請輸入引數或輸入空白字串。
指示指令碼是否將等待「執行檔」完成的「布林」值。 dll 呼叫會忽略此參數。
/*對下列檔案執行 notepad,myfile.txt,並等待處理結束。*/ Execute( "c:\\windows\\notepad.exe", "myfile.txt", true ); /*執行 Notepad 但不加任何參數也不等待。*/ Execute( "c:\\windows\\notepad.exe" ); /* 用參數呼叫 dll*/ Execute( "c\\windows\\Somelib.dll::CheckNetwork", "000d1");
結束指令檔。 如果此關鍵字後面有一個值,會將它寫入到「除錯」及「錯誤記錄」中。 圓括號是選擇性的選項。
Exit ("Exiting because MS Word does not exist on machine.");
在指定字串中延伸所有環境並傳回結果。
包含環境變數的字串。
ExpandString(<字串>);
var result = ExpandString("%WinDir%")
依據 CommandID 傳回引擎相關的資料。 它會在傳遞錯誤的 CommandID 時傳回錯誤。 您可以在移轉的兩端 (儲存和套用) 使用此指令。
注意:您無法在舊版本的產品中使用此指令。 如果您嘗試在舊版本的 CA DMM 中使用此指令,該指令會出現語法錯誤。
CommandID (例如,GET_CUR_SEL),可取得目前選取的節點名稱 (應用程式或系統設定) 進行移轉。
GetEngineData(<CommandID>);
var strNewPath = GetEngineData(GET_CUR_SEL)
傳回對映至新電腦的新「檔案」路徑。 此指令也能夠使用採用不同分隔字元 (非一般的 \\ 字元) 的路徑。
舊檔案路徑 (字串值)
路徑分隔符號 (字串值)
GetMappedPath( <舊檔案路徑>, [<路徑分隔符號>] );
newPath = GetMappedPath("c:\\old path\\file.txt"); /* newPath 將等於新檔案路徑。*/ oldPath = "c:_old path_file.txt"; newPath = GetMappedPath( oldPath, "_" ); /* newPath 將等於含有分隔字元的新檔案路徑*/
/* 例如 newPath 可能等於 e:_new path_file.txt*/
傳回電腦的平台。 傳回值為:WIN2000、WINXP、 WINVI 或 WIN7 (請參閱「定義清單」)。 需要用一個參數來指示要取得來源電腦還是目的地電腦的平台。 此參數是選擇性的選項,且為「布林」值。 預設為假,表示目的地;真表示目前電腦。
附註:「布林」參數只能在 General 與 Apply 函數期間使用。 若以其他方法使用,參數會導致語法錯誤或執行時期錯誤。
電腦 (布林值)
GetPlatform( [Boolean] );
if (GetPlatform(DESTINATION) == WINXP) ApplyWinXPWord();
查詢作業系統以決定這是 Windows 2000、Windows XP、Windows Vista 或 Windows 7。 此參數為選擇性的選項。 如為 [真],CA DMM 會取得來源電腦的 OS,否則會取得目的地電腦的 OS。 預設為假。
附註:在 General 與 Apply 函數期間,參數只能設定為 [真]。 如果用於 Store 函數中,參數會導致語法錯誤或執行時期錯誤。
電腦 (布林值)
值 = IsLikeNT([布林]);
IsLikeNT(SOURCE);
在指令檔期間將一個路徑對映至另一個路徑。 此路徑對映適用於目前指令檔中的 MapPath 關鍵字之後的所有「套用」作業。 此關鍵字具有在下列作業中以 <新路徑> 取代符合 <舊路徑> 的所有路徑的效果:ApplyDirectory、ApplyFile 和 ApplyMappedValue。
舊路徑 (字串值)
新路徑 (字串值)
MapPath(<舊路徑>, <新路徑>);
MapPath("c:\\winword\\data", "c:\\winword\\Application Data");
為使用者顯示訊息。 此指令使用一個參數,且為字串值。 圓括號是選擇性的選項。
訊息文字 (字串值)
Message ( <字串> );
Message ("help!");
建立在設定頁面上顯示的選項。 它也會針對選項與 Store 及 Apply 函數相關聯。 如果使用者選擇選項,解譯器會叫用與選項相關聯的函數。 要顯示的敘述式可以使用斜線來指定階層。 例如,Microsoft Word\\Toolbar 選項會將 Microsoft Word 顯示在一行上,「工具列」則以縮排顯示在選項樹狀目錄檢視的下一行上。
選項路徑 (字串值)
Store 函數名稱 (字串值)
Apply 函數名稱 (字串值)
請參閱範例:建立本土化的設定樹狀目錄。
Option( <option path>, [Store function name], [Apply function name], [LanguageIndependentPath]);
Option ( "Microsoft Word\\Toolbar");
Option( "MicrosoftWord\\Toolbar\\Tooltips", "StoreTooltips", "ApplyTooltips", "msword\\toolbar\\tooltips");
如果使用者選取此項目,則解譯器會呼叫 Store 與 Apply 函數。 如果使用者選取選項,也會叫用選項的母函數。
將訊息列印至「活動記錄」與「除錯記錄」。 圓括號是選擇性的選項。 此指令使用一個參數,它是字串值。 針對選擇性的第二參數資訊,請參閱「列印層級」。 若未指定「列印層級」,參數會預設為 GENERAL。
string (string value)
print (<字串>);
Print ("警告:檔案 win.ini 將被覆寫");
將字串列印至「例外記錄」。 「例外記錄」可用來檢視 CA DMM 無法移動或張貼移轉指令的項目。 例如,Netscape Communicator 指令檔會將說明升級程序的詳細指令列印到「例外記錄」。 MS Word 指令檔會列印出無法升級的設定。 PrintException 指令只能在 ApplyFunction 中使用。 如需選擇性的第二參數資訊,請參閱〈列印層級〉。 若未指定「列印層級」,參數會預設為 GENERAL。
string (string value)
PrintException (<字串>);
PrintException ("請移除檔案 c:\\windows\\netscapecommunication.ttt");
從來源電腦或目的地電腦中擷取登錄機碼值。 它可能會用到三個參數:機碼路徑、值名稱及「布林」。 前兩個參數是必要項目,且為字串值。 第三個參數是選擇性的選項。 如果第三個參數為 [真],CA DMM 會查看來源電腦,否則會查看目的地電腦。 預設為假。 如果無法擷取值,指令會傳回假。
附註:第三個「布林」參數只能在 General 與 Apply 函數期間使用。 若以其他方法使用,第三個「布林」參數將會導致語法錯誤或執行時期錯誤。
機碼路徑 (字串值)
值名稱 (字串值)
電腦 (布林值)
Value = RetrieveValue(<機碼路徑>, <值名稱>, [布林]);
RetrieveValue( "HKCU\\Software\\Microsoft\\Office\\8.0\\Common\\Toolbar", "Tooltips", SOURCE);
RetrieveValue( "HKCU\\Software\\Microsoft\\Office\\8.0\\Common\", "Tooltips", DESTINATION);
指示 CA DMM 在移轉結束時顯示必須重新啟動的對話方塊。 此函數用於需要重新啟動才能成功移轉的指令檔。 唯一的必要參數是指示指令檔是否需要重新啟動的「布林」。
(布林值)
RestartRequired(<布林>);
RestartRequired(true);
Copyright © 2014 CA Technologies.
All rights reserved.
|
|