標準文字列テンプレートの使用

アクティブ スクリプト イベント コンシューマーやコマンド ライン イベント コンシューマーなど、一部のコンシューマーには Template 修飾子を含む文字列プロパティがあります。 これらのプロパティでは、標準の文字列テンプレートを使用して文字列を作成します。この文字列は、一部がコンシューマー インスタンスによって、一部がイベントによって構成されます。 標準文字列テンプレートの構造は、Microsoft Windows 環境変数の仕様に似ています。

次の一覧に、テンプレート言語の例をいくつか示します。

  • 文字列 "Some text here" は、常に文字列 "Some text here" を生成します。
  • "%CPUUtilization%" は、配信されるイベントの CPUUtilization プロパティの値を常に生成します。 プロパティが文字列でない場合は、文字列に変換されます。たとえば、"90" や "TRUE" などです。
  • "The CPU utilization of this processor is %CPUUtilization% at this time" では、イベントの CPUUtilization プロパティの値が文字列に埋め込まれ、"The CPU utilization of this processor is 90 at this time" のように生成されます。
  • "%TargetInstance.CPUUtilization%" は、TargetInstance プロパティの埋め込みインスタンスの CPUUtilization プロパティの値を取得します。
  • "%%" は 1 つの % 記号を生成します。
  • 取得するプロパティが配列の場合、配列全体が "(1,5,10,1024)" の形式で生成されます。 配列に要素が 1 つしかない場合、かっこは省略されます。 配列に要素がない場合は、"()" が生成されます。
  • プロパティが埋め込みオブジェクトの場合、オブジェクトの MOF 表現が生成されます (IWbemClassObject::GetObjectText メソッドと同様)。
  • オブジェクトの埋め込み配列のプロパティが要求された場合、そのプロパティは配列値を持つプロパティとして扱われます。 たとえば、MyEvents が埋め込みインスタンス変更イベントの配列である場合、%MyEvents.TargetInstance.DriverLetter% は '("C:","D:")' を生成できます。

文字列リテラル

引用符のペアに挟まれた部分はすべて文字列リテラルと見なされ、置換されません。

次の例は、"CPU utilization is %CPUUtilization%" とした場合にコンパイラに表示される文字列を示しています。

CPU utilization is %CPUUtilization%

この文字列では次の出力が生成されます。

CPU utilization is 90

一方、"CPU utilization is \"%CPUUtilization%\"" という文字列は、コンパイラに次のように表示されます。

CPU utilization is "%CPUUtilization%"

この文字列では、変数の置換が行われずに次の出力が生成されます。

CPU utilization is "%CPUUtilization%"

標準コンシューマーを使用したイベントの監視と対応