前のトピック: 演算子次のトピック: 例: ローカライズされた設定ツリーの作成


一般コマンド

CA DMM のスクリプトで使用する一般コマンドは以下のとおりです。

break

制御の流れを現在のループの最後に移動し、ループ後の最初の指示が実行されます。 これは return とは異なります。return の場合は、すべてのループおよび関数のスコープを中止します。 break はループ内でのみ機能します。

例:
function Foo()
{
     while (true)
     {
          while (z < 5)
          {
               ...
               if (x == false)
               {
               break;     // jumps to line following while (z < 5) {}
               }
               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 文字列に変換します。 変換するバイナリ データの文字列をパラメータとして必ず指定します。 2 番目のパラメータはオプションで、バイナリを指定します。 ブール値が True の場合、UNICODE 文字列に変換されます。 False の場合は、ASCII 文字列に変換されます。

第1パラメータ:

バイナリ文字列

第 2 パラメータ:

ブール値

使用方法:
ConvertBinaryToString(<値>,[ブール値]);
例:
var result = ConvertBinaryToString("000FFFDCB709E")
ConvertStringToBinary

ASCII 文字列をバイナリ文字列に変換します。 変換するASCII文字列をパラメータとして必ず指定します。 2 番目のパラメータはオプションです。 このパラメータが True の場合、UNICODE バイナリに変換されます。

第1パラメータ:

ASCII 文字列

第 2 パラメータ:

ブール値

使用方法:
ConvertStringToBinary(<値>,[ブール値]);
例:
var result = ConvertStringToBinary("convert this string to binary")
Detect

スクリプトに関連付けられているアプリケーションを指定します。 スクリプトに関連付けることができるアプリケーションは 1 つのみです。 ソース コンピュータでは、Detection 関数からコールされます。 デスティネーション コンピュータでは、任意の場所からコールしてアプリケーション パスを解決することができます。 APPLICATIONPATH キーワードはインタプリタによって解決されます。このコールを発行するまで、APPLICATIONPATH キーワードは無効なので使用しないでください。 スクリプトでは、不要な処理を避けるために、Detection 関数内で Detect をコールする必要があります。

Detect のパラメータは、実行可能ファイル名とオプションのレジストリ キー値です。 どちらのパラメータにも文字列値を指定します。 レジストリ値のパス パラメータには、実行可能ファイルのパスが格納されたレジストリ値の完全パスを指定します。 レジストリ値がデフォルトのパラメータの場合、パスの末尾がキー名とスラッシュになっている必要があります(以下の例を参照)。 Detection 関数では、スクリプトで Detect のリターン コードをチェックし、スクリプトの処理を続行するか、終了するかを決定する必要があります。

第 1 パラメータ:

実行可能ファイル名(文字列値)

第 2 パラメータ:

レジストリのパス(文字列値)

使用方法:
Detect ( <実行可能ファイル名>, [レジストリのパス] );
例:
if( Detect( "MyApp.exe", "HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\App Paths\\MyApp.exe\\"  ) == false)
{
     return;
}
if (Detect ( <実行可能ファイル名>) == false)
return;
Execute

実行可能ファイルまたはdllを実行します。 execute がコールするファイルまたは dll が見つからない場合、この関数は False を返します。

第 1 パラメータ:

最初のパラメータは、実行する項目のパスです。 dll のパスの場合は、2 つのコロンのすぐ後に API 関数を指定する必要があります。 dll コールの形式は、PATH::APIFunctionName です。 dll に対するExecuteでは、以下の 2 種類の関数のみコールできます。

    int FunctionName();
    int FunctionName( const char * );
第 2 パラメータ:

コールがコマンド ライン引数を取る場合は、引数を入力するか、空の文字列を入力します。

第 3 パラメータ:

スクリプトが、実行可能ファイルが完了するまで待機するかどうかを示すブール値です。 dll コールの場合、このパラメータは無視されます。

例:
/*executes notepad with the following file, myfile.txt and waits for the process to end.*/
Execute( "c:\\windows\\notepad.exe", "myfile.txt", true );

/*executes notepad without parameters and waiting.*/
Execute( "c:\\windows\\notepad.exe" );

/* makes a call into the dll with parameters*/
Execute( "c\\windows\\Somelib.dll::CheckNetwork", "000d1");

** dll の PATH::APIFunctionName の形式に注意してください。
Exit

スクリプトを終了します。 このキーワードの後に値が続く場合は、その値がデバッグ ログおよびエラー ログに書き込まれます。 かっこはオプションです。

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

指定した文字列のすべての環境変数を展開し、結果を返します。

第1パラメータ:

環境変数を含む文字列。

使用方法:
ExpandString(<文字列>);
例:
var result = ExpandString("%WinDir%")
GetEngineData

CommandID に基づいてエンジン関連のデータを返します。 マイグレーション中に誤った CommandID が渡された場合、エラーを返します。 マイグレーションの格納と適用の両方で、このコマンドを使用できます。

注: 製品の以前のバージョンでは、このコマンドを使用できません。 CA DMM の古いバージョンで、このコマンドを使用しようとすると、構文エラーが発生します。

第1パラメータ:

マイグレーション対象として現在選択されているノード名(アプリケーションまたはシステム設定)を取得するための CommandID(たとえば、GET_CUR_SEL)

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

新しいマシンにマップされた新しいファイル パスを返します。 このコマンドでは、一般的な「\\」文字以外の区切り文字が含まれたパスを指定することもできます。

第 1 パラメータ:

古いファイル パス(文字列値)

第 2 パラメータ:

パスの区切り文字(文字列値)

使用方法:
GetMappedPath( <古いファイル パス>, [<パスの区切り文字>] );
例:
newPath = GetMappedPath("c:\\old path\\file.txt");
/* newPath will equal the new file path.*/		
oldPath = "c:_old path_file.txt";
newPath = GetMappedPath( oldPath, "_" );
/* newPath will equal the new file path with the delimiter*/
/* for example newPath could equal e:_new path_file.txt*/
GetPlatform

コンピュータのプラットフォームを返します。 戻り値は、WIN2000、WINXP、WINVI、または WIN7 です(「定義リスト」を参照)。 ソース マシンまたはデスティネーション マシンのどちらのプラットフォームを取得するかを示すパラメータを 1 つ指定できます。 このパラメータはオプションで、ブール値を指定します。 デフォルト値は False で、これはデスティネーション マシンを表わします。True は現在のマシンを表わします。

注: ブール値のパラメータは、General および Apply 関数内でだけ使用できます。 他の関数でこのパラメータを使用すると、構文エラーまたはランタイム エラーになります。

第 1 パラメータ:

マシン(ブール値)

使用方法:
GetPlatform( [ブール値] );
例:
if (GetPlatform(DESTINATION) == WINXP)
    ApplyWinXPWord();
IsLikeNT

オペレーティング システムに対してクエリを実行して、それが Windows 2000、Windows XP、Windows Vista、Windows 7 のいずれであるかを調べます。 パラメータはオプションです。 True の場合、CA DMM はソース マシンの OS を取得します。False の場合はデスティネーション マシンの OS を取得します。 デフォルト値は False です。

注: General および Apply 関数の使用時は、このパラメータを True にのみ設定できます。 Store 関数でこのパラメータを使用すると、構文エラーまたはランタイム エラーが発生します。

第 1 パラメータ:

マシン(ブール値)

使用方法:
Value = IsLikeNT([ブール値]);
例:
IsLikeNT(SOURCE);
MapPath

スクリプトの実行中、あるパスを別のパスにマップします。 パスのマッピングは、現在のスクリプト内の MapPath キーワードに続くすべての適用操作に適用されます。 このキーワードは、ApplyDirectory、ApplyFile、および ApplyMappedValue 操作内で <古いパス> に一致するすべてのパスを <新しいパス> で置き換えます。

第 1 パラメータ:

古いパス(文字列)

第 2 パラメータ:

新しいパス(文字列)

使用方法:
MapPath(<古いパス>, <新しいパス>);
例:
MapPath("c:\\winword\\data", "c:\\winword\\Application Data");
Message

ユーザにメッセージを表示します。 このコマンドには、文字列値パラメータを 1 つ指定します。 かっこはオプションです。

第 1 パラメータ:

メッセージのテキスト(文字列値)

使用方法:
Message ( <文字列> );
例:
Message ("help!");
Option

設定ページに表示するオプションを作成します。 また、Store および Apply 関数もオプションに関連付けます。 ユーザがオプションを選択した場合、オプションに関連付けられている関数がインタプリタによって呼び出されます。 スラッシュを使用して、表示するステートメントの階層を指定できます。 たとえば、オプション「Microsoft Word\\Toolbar」では、ツリー ビューにオプションの 1 つとして「Microsoft Word」が表示され、その次の行にインデントされた状態で「Toolbar」が表示されます。

第 1 パラメータ:

オプションのパス(文字列値)

第 2 パラメータ:

Store関数の名前(文字列値)

第 3 パラメータ:

Apply 関数の名前(文字列値)

第 4 パラメータ:

「例: ローカライズされた設定ツリーの作成」を参照してください。

使用方法:
Option( <オプションのパス>, [Store 関数の名前], [Apply 関数の名前], [LanguageIndependentPath]);
例:
Option ( "Microsoft Word\\Toolbar");
Option( "MicrosoftWord\\Toolbar\\Tooltips", "StoreTooltips", "ApplyTooltips", "msword\\toolbar\\tooltips");

ユーザが項目を選択した場合、Store および Apply 関数がインタプリタによって呼び出されます。 ユーザがオプションを選択した場合、オプションの親関数も呼び出されます。

Print

メッセージをアクティビティ ログおよびデバッグ ログに出力します。 かっこはオプションです。 このコマンドには、文字列値パラメータを1つ指定します。 オプションの2番目のパラメータについては、「印刷レベル」を参照してください。 印刷レベルが指定されていない場合、パラメータはデフォルトで GENERAL になります。

第 1 パラメータ:

文字列(文字列値)

使用方法:
print  (<文字列>);
例:
Print ("Warning: file win.ini will be overwritten");
PrintException

例外ログに文字列を出力します。 例外ログは、CA DMM が実行できなかったマイグレーション手順を表示するのに使用します。 たとえば、Netscape Communicator のスクリプトは、アップグレード手順に関する詳細手順を例外ログに出力します。 MS Word のスクリプトは、アップグレードできなかった設定を出力します。 PrintException コマンドは、Apply 関数内でのみ使用できます。 オプションの 2 番目のパラメータについては、「印刷レベル」を参照してください。 印刷レベルが指定されていない場合、パラメータはデフォルトで GENERAL になります。

第 1 パラメータ:

文字列(文字列値)

使用方法:
PrintException (<文字列>);
例:
PrintException ("Please remove the file c:\\windows\\netscapecommunication.ttt");
RetrieveValue

ソース コンピュータまたはデスティネーション コンピュータから、レジストリ キーの値を取得します。 キーのパス、値の名前、ブール値の3つのパラメータを指定できます。 最初の 2 つのパラメータは必須で、文字列値を指定します。 3 番目のパラメータはオプションです。 3 番目のパラメータが True の場合、CA DMM はソース マシンを検索し、False の場合はデスティネーション マシンを検索します。 デフォルト値は False です。 値を取得できない場合は、False が返されます。

注: 3 番目のブール値のパラメータは、General および Apply 関数内でだけ使用できます。 3 番目のブール パラメータをそれ以外の関数で使用すると、構文エラーまたはランタイム エラーが発生します。

第 1 パラメータ:

キーのパス(文字列値)

第 2 パラメータ:

値の名前(文字列値)

第 3 パラメータ:

マシン(ブール値)

使用方法:
Value = RetrieveValue(<キーのパス>, <値の名前>, [ブール値]);
例:
RetrieveValue( "HKCU\\Software\\Microsoft\\Office\\8.0\\Common\\Toolbar", "Tooltips", SOURCE);
RetrieveValue( "HKCU\\Software\\Microsoft\\Office\\8.0\\Common\", "Tooltips", DESTINATION);
RestartRequired

マイグレーションの最後に、再起動を要求するダイアログを表示するように指定します。 この関数は、正常にマイグレーションを完了するために再起動が必要なスクリプトで使用します。 必要なパラメータは、スクリプトで再起動が必要かどうかを示すブール値のみです。

第 1 パラメータ:

(ブール値)

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