形式

Formatted データ型は、埋め込みプロパティ名、テーブル キー、環境変数参照、およびその他の特殊な部分文字列を解決するために処理されるテキスト文字列です。 文字列を解決するために次の規則が認識されます。

  • 一致するペアがない角かっこ ([ ]) または中かっこ ({ }) がテキストに残ります。

  • [propertyname] 形式の部分文字列が見つかった場合、プロパティの値に置き換えられます。 propertyname が有効なプロパティ名でない場合、部分文字列は空白として解決されます。 たとえば、LaunchCondition テーブルの [Description] 列は、Formatted 型の文字列を受け取ります。 ERRORTXT が "サポート担当者にお問い合わせください。" に設定されている場合、起動条件に失敗した場合に表示されるテキストにはこの文字列が含まれます。 ERRORTXT が設定されていない場合、起動条件が失敗した場合に表示されるテキストは単に "システムがインストール要件を満たしていません。" になります。

    条件 説明
    Version9X システムがインストール要件を満たしていません。 [ERRORTXT]

     

  • 角かっこを繰り返し使用すると、プロパティ名が内側から解決されます。たとえば、テキストに部分文字列 [[PropertyA]] が表示されたとします。 まず、PropertyA プロパティの値が取得されます。 値が PropertyB などの有効なプロパティ名である場合、PropertyB の値が取得され、部分文字列 [[PropertyA]] 全体が PropertyB の値で置き換えられます。 PropertyA が有効なプロパティ名でない場合、または PropertyA の値が有効なプロパティ名でない場合、部分文字列は空白になります。

  • [%environmentvariable] 形式の部分文字列が見つかった場合、この部分文字列の環境変数の値が置き換えられます。

  • [\x] 形式の部分文字列が見つかった場合、それ以上の処理を行わずに x の文字 (x は 1 文字を指します) で置き換えられます。 円記号の後の最初の文字のみが保持され、それ以外はすべて削除されます。 たとえば、リテラルの左角かっこ ([) を含めるには [\[] を使用します。 テキストの [\[]Bracket Text[\]] は [Bracket Text] に解決されます。

  • 部分文字列が中かっこ ({ }) で囲まれ、角かっこ ([ ]) で囲まれたプロパティ名を含まない場合、中かっこを含む部分文字列は変更されません。

  • 部分文字列が中かっこ ({ }) で囲まれ、角かっこ ([ ]) で囲まれた 1 つ以上のプロパティ名を含む場合、すべてのプロパティ名が有効な場合は、(解決された置換を含む) テキストが中かっこなしで表示されます。

  • [~] 形式 の部分文字列が見つかった場合は、null 文字で置き換えられます。 これを使用すると、Registry テーブルREG_MULTI_SZ 文字の文字列を作成できます。 [~] を使用すると、Environment テーブルを使用して環境変数に値またはプレフィックス値を追加することもできることに注意してください。

  • [#filekey] 形式の部分文字列が見つかった場合、ファイルの完全なパスで置き換えられ、値 filekeyFile テーブルのキーとして使用されます。 インストーラーが CostInitialize アクションFileCost アクション、および CostFinalize アクションを実行するまで、[#filekey] の値は空白のままで、パスで置き換えられることはありません。 [#filekey] の値は、ファイルが属するコンポーネントのインストールの状態によって異なります。 コンポーネントがソースから実行される場合、値はファイルのソースの場所へのパスです。 コンポーネントがローカルで実行される場合、値はインストール後のファイルのターゲットの場所へのパスです。 コンポーネントのアクションの状態が存在しない場合は、コンポーネントのインストール済み状態を使用して [) を決定します。

  • [$componentkey] 形式の部分文字列が見つかった場合、コンポーネントのインストール ディレクトリで置き換えられ、値 componentkeyComponent テーブルのキーとして使用されます。 インストーラーが CostInitialize アクションFileCost アクション、および CostFinalize アクションを実行するまで、[$componentkey] の値は空白のままで、ディレクトリで置き換えられることはありません。 [$componentkey] の値は、コンポーネントのインストールの状態とインストールの場所によって異なります。 Registry テーブルの [Value] 列では、この部分文字列はコンポーネントのアクションの状態または要求されたアクションの状態を参照できます。 それ以外の場合、この部分文字列はコンポーネントのアクションの状態を参照します。 たとえば、コンポーネントがソースから実行される場合、この値はファイルのソース ディレクトリです。 コンポーネントがローカルで実行されている場合、この値はインストール後のターゲット ディレクトリです。 コンポーネントが存在しない場合、値は空白のままです。 Windows インストーラーは、コンポーネントのアクションの状態と要求されたインストールの状態の両方を追跡します。 たとえば、コンポーネントがインストール済みの場合、要求された状態はローカルで、アクションの状態は null になることがあります。 コンポーネントのインストール状態の確認の詳細については、「機能、コンポーネント、ファイルのインストールの確認」を参照してください。

  • コンポーネントがインストール済みで、現在のインストール中に再インストール、削除、または移動が発生しない場合、コンポーネントのアクションの状態は null になり、文字列 [$componentkey] は Null と評価されることに注意してください。

  • [!filekey] 形式の部分文字列が見つかった場合、ファイルの完全な短いパスで置き換えられ、値 filekeyFile テーブルのキーとして使用されます。

    この構文は、Registry テーブルまたは IniFile テーブルの [Value] 列で使用される場合にのみ有効です。 他の列で使用すると、この構文は [#filekey] と同じように扱われます。