上一主题: 运算符下一主题: 示例:创建本地化设置树


一般命令

以下是 CA DMM 脚本中使用的一般命令:

Break

将控制流跳转到即时循环的末尾,并按照循环执行第一条指令。 这与 return 不同,return 将跳出所有的循环和函数区域。 break 只有在循环中才有意义。

示例:
function Foo()
{
     while (true)
     {
          while (z < 5)
          {
               ...
               if (x == false)
               {
               break;     // jumps to line following while (true) {}
               }
               if (y == true)
               {
          return 5;     // returns from Foo() immediately
               }
          }
          if (x == false)
          {
               break;     // jumps to line following while (true) {}
          }
     }
     ...
     return -1;	// returns from Foo() immediately
}
ConvertBinaryToString

将二进制字符串转换为 ASCII 字符串。 它具有一个必需的参数,即包含要转换的二进制数据的字符串。 第二个参数可选,为布尔值。 如果该布尔值为真,则转换为 UNICODE 字符串。 如果该布尔值为假,则转换为 ASCII 字符串。

第一个参数:

二进制字符串

第二个参数:

布尔值

用法:
ConvertBinaryToString(<value>,[Boolean]);
示例:
var result = ConvertBinaryToString("000FFFDCB709E")
ConvertStringToBinary

将 ASCII 字符串转换为二进制字符串。 它具有一个必需的参数,即要转换的 ASCII 字符串。 第二个参数可选。 如果该参数为真,则转换为 UNICODE 二进制字符串。

第一个参数:

ASCII 字符串

第二个参数:

布尔值

用法:
ConvertStringToBinary(<值>,[Boolean]);
示例:
var result = ConvertStringToBinary("将此字符串转换为二进制")
检测

指定与脚本相关联的应用程序。 一个脚本只能关联一个应用程序。 在源计算机上,它将从 Detection 函数调用。 在目标计算机上,它可从任何地方调用,用于解析应用程序路径。 解释程序包括 APPLICATIONPATH 关键字,暂时无效,在发布此呼叫之前,不应使用。 脚本应在 Detection 函数中调用 Detect,以避免不必要的处理:

Detect 的参数是可执行文件名称和可选注册表项值。 两个参数均为字符串值。 注册表值路径参数为至注册表值的完整路径,将路径保留为可执行文件。 如果注册表值为默认参数,则路径应由注册表项名称和斜线(见以下示例)结尾。 Detection 函数中,脚本必须检查 Detect 的返回值,确定是否继续处理脚本或终止脚本。

第一个参数:

可执行文件名(字符串值)

第二个参数:

注册表路径(字符串值)

用法:
Detect ( <可执行文件名>, [注册表路径] );
示例:
if( Detect( "MyApp.exe", "HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\App Paths\\MyApp.exe\\"  ) == false)
{
     return;
}
if (Detect ( <executable Name>) == false)
return;
执行

执行可执行文件或 dll。 如果该执行找不到文件或 dll 来进行调用,函数将返回“假”。

第一个参数:

第一个参数是要执行的内容的路径。 如果是 dll 的路径,则 API 函数要紧跟在两个冒号后面。 dll 调用的格式为 PATH::APIFunctionName。 dll 的 Execute 仅在两种函数类型中查找调用:

    int FunctionName();
    int FunctionName( const char * );
第二个参数:

如果调用使用命令行参数,则输入这些参数或输入空字符串。

第三个参数:

指示脚本是否等待可执行文件完成的布尔值。 第三个参数会被 dll 调用忽略。

示例:
/*使用文件 myfile.txt 执行 notepad,并等待过程完成。*/
Execute( "c:\\windows\\notepad.exe", "myfile.txt", true );

/*不使用参数执行 notepad 并等待。*/
Execute( "c:\\windows\\notepad.exe" );

/*使用参数调用 dll*/
Execute( "c\\windows\\Somelib.dll::CheckNetwork", "000d1");

**注意 dll 的格式:PATH::APIFunctionName
退出

退出脚本。 如果此关键字后面跟值,则将把该值写入调试日志或错误日志。 括号可选。

示例:
Exit ("Exiting because MS Word does not exist on machine.");
ExpandString

展开给定字符串的所有环境变量,然后返回结果。

第一个参数:

包含环境变量的字符串。

用法:
ExpandString(<字符串>);
示例:
var result = ExpandString("%WinDir%")
GetEngineData

基于 CommandID 返回与引擎相关的数据。 如果通过了错误的 CommandID,将在迁移期间返回错误。 您可以将该命令用于两方面:迁移的存储和应用。

注意:请勿在该产品的早期版本中使用该命令。 如果您试图在 CA DMM 的旧版本中使用该命令,则该命令将出现语法错误。

第一个参数:

CommandID(例如 GET_CUR_SEL)用于获取迁移的当前选定节点名称(应用程序或系统设置)。

用法:
GetEngineData(<CommandID>);
示例:
var strNewPath = GetEngineData(GET_CUR_SEL)
GetMappedPath

返回映射到新机器的新文件路径。 此命令还具有获取分隔符不同于普通的 \\ 字符的路径的功能。

第一个参数:

旧文件路径(字符串值)

第二个参数:

路径分隔符(字符串值)

用法:
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*/
GetPlatform

返回计算机的平台。 返回值为:WIN2000、WINXP、WINVI 或 WIN7(请参阅定义列表)。 它采用一个参数,以表示是获取源计算机还是目标计算机的平台。 此参数可选,为布尔值。 默认值为 False,代表目标计算机;True 代表当前计算机。

注意:布尔参数只能在 General 和 Apply 函数中使用。 如果在其它函数中使用,将导致语法错误或运行时间错误。

第一个参数:

机器(布尔值)

用法:
GetPlatform( [Boolean] );
示例:
if (GetPlatform(DESTINATION) == WINXP)
    ApplyWinXPWord();
IsLikeNT

查询操作系统,以便决定它是 Windows 2000 、 Windows XP 、 Windows Vista 还是 Windows 7。 参数为可选项。 如果为“True”,CA DMM 则获得源计算机的操作系统,否则获得目标计算机的操作系统。 默认值为假。

注意:在“常规”和“应用”正常工作时,只能将该参数设置为“True”。 如果用于存储功能中,则会造成语法错误或运行时错误。

第一个参数:

机器(布尔值)

用法:
Value = IsLikeNT([Boolean]);
示例:
IsLikeNT(SOURCE);
MapPath

在脚本期限内将一个路径映射至另一路径。 此路径映射应用于当前脚本中跟在 MapPath 关键字后面的所有 Apply 操作。 在 ApplyDirectory、ApplyFile 和 ApplyMappedValue 操作中,此关键字具有将与<旧路径> 匹配的所有路径替换为<新路径>的作用。

第一个参数:

旧路径(字符串值)

第二个参数:

新路径(字符串值)

用法:
MapPath(<旧路径>, <新路径>);
示例:
MapPath("c:\\winword\\data", "c:\\winword\\Application Data");
消息

向用户显示消息。 此命令有一个参数,为字符串值。 括号可选。

第一个参数:

消息文本(字符串值)

用法:
Message ( <字符串> );
示例:
Message ("help!");
选项

创建选项以在设置页面显示。 它还关联该选项的 Store 和 Apply 函数。 如果用户选择某个选项,解释程序将调用此该选项相关联的函数。 显示的语句可通过使用斜框指定层次结构。 例如,在选项的树形视图中,选项 Microsoft Word\\Toolbar 将在一行显示 Microsoft Word,而在下一行缩进显示 Toolbar。

第一个参数:

选项路径(字符串值)

第二个参数:

Store 函数名(字符串值)

第三个参数:

Apply 函数名(字符串值)

第四个参数:

请参阅示例:创建本地化设置树

用法:
Option( <选项路径>, [Store 函数名], [Apply 函数名] [LanguageIndependentPath]);
示例:
Option ( "Microsoft Word\\Toolbar");
Option( "MicrosoftWord\\Toolbar\\Tooltips", "StoreTooltips", "ApplyTooltips", "msword\\toolbar\\tooltips");

如果用户选择了该项,解释程序将调用 Store 和 Apply 函数。 如果用户选择了选项,还将调用选项的父函数。

打印

将消息打印到活动日志和调试日志。 括号可选。 此命令有一个参数,为字符串值。 有关可选的第二个参数的信息,请参阅打印级别。 如果未指定“打印级别”,参数默认为 GENERAL。

第一个参数:

字符串(字符串值)

用法:
print  (<字符串>);
示例:
Print ("警告:win.ini 文件将被覆盖");
PrintException

将字符串输出到“例外日志”。 “例外日志”用来查看 CA DMM 无法移动或发布迁移说明的项。 例如,Netscape Communicator 脚本将描述升级过程的详细说明输出到“例外日志”。 MS Word 脚本输出不能升级的设置。 PrintException 命令只能在 ApplyFunction 中使用。 有关第二个参数(可选)的信息,请参阅“打印级别”。 如果未指定“打印级别”,参数默认为 GENERAL。

第一个参数:

字符串(字符串值)

用法:
PrintException (<字符串>);
示例:
PrintException ("Please remove the file c:\\windows\\netscapecommunication.ttt");
RetrieveValue

从源计算机或目标计算机上检索注册表项值。 它可以使用三个参数:项路径,值名称和一个布尔参数。 前两个为必需参数,且为字符串值。 第三个参数可选。 如果第三个参数为“True”,CA DMM 将在源计算机上查找;否则,将在目标计算机上查找。 默认值为假。 如果无法检索到该值,命令将返回假。

注意:第三个布尔参数只能在 General 和 Apply 函数中使用。 如果在其它函数中使用,将导致语法错误或运行时间错误。

第一个参数:

注册表项路径(字符串值)

第二个参数:

值名称(字符串值)

第三个参数:

机器(布尔值)

用法:
Value = RetrieveValue(<注册表项路径>, <值名称 >, [Boolean]);
示例:
RetrieveValue( "HKCU\\Software\\Microsoft\\Office\\8.0\\Common\\Toolbar", "Tooltips", SOURCE);
RetrieveValue( "HKCU\\Software\\Microsoft\\Office\\8.0\\Common\", "Tooltips", DESTINATION);
RestartRequired

指示 CA DMM 在迁移结束后显示“需要重新启动”对话框。 为需要重新启动的脚本使用此函数,以成功完成迁移。 唯一需要的参数是一个指明脚本是否需要重新启动的布尔值。

第一个参数:

(布尔值)

用法:
RestartRequired(<Boolean>);
示例:
RestartRequired(true);