ファイルにカスタム書式設定を適用する
コマンドレット、関数、およびスクリプトによって返されるオブジェクトの表示形式は、書式設定ファイル (format.ps1xml ファイル) を使用して定義されます。 これらのファイルのいくつかは、Windows PowerShellコマンドレットによって返されるオブジェクトの既定の表示形式を定義するために、Windows PowerShellされています。 ただし、独自のカスタム書式設定ファイルを作成して、既定の表示形式を上書きしたり、独自のコマンドによって返されるオブジェクトの表示を定義したりすることもできます。
Windows PowerShellファイル内のデータを使用して、表示される情報とデータの書式設定方法を決定します。 表示されるデータには、オブジェクトのプロパティまたはスクリプト ブロックの値を含めることができます。 スクリプト ブロックは、オブジェクトのプロパティから直接使用できない値を表示する場合に使用されます。 たとえば、オブジェクトの 2 つのプロパティの値を追加し、合計を個別のデータとして表示することができます。 独自の書式設定ファイルを記述する場合は、表示するオブジェクトのビューを定義する必要があります。 オブジェクトごとに 1 つのビューを定義したり、複数のオブジェクトに対して 1 つのビューを定義したり、同じオブジェクトに対して複数のビューを定義することができます。 定義できるビューの数に制限はありません。
重要
ファイルの書式設定では、パイプラインに返されるオブジェクトの要素は決定されません。 オブジェクトがパイプラインに返された場合、そのオブジェクトのすべてのメンバーを使用できます。
ビューの書式設定
書式設定ビューでは、テーブル形式、リスト形式、ワイド形式、およびカスタム形式でオブジェクトを表示できます。 ほとんどの場合、各書式設定定義は、ビューを記述する XML タグのセットによって記述されます。 各ビューには、ビューの名前、ビューを使用するオブジェクト、およびテーブル ビューの列と行の情報など、ビューの要素が含まれます。
次のビューを使用できます。
テーブル ビュー 1 つ以上の列のオブジェクトまたはスクリプト ブロック値のプロパティを一覧表示します。 各列は、 オブジェクトまたはスクリプト ブロック値のプロパティを表します。 オブジェクトのすべてのプロパティ、オブジェクトのプロパティのサブセット、またはプロパティとスクリプト ブロック値の組み合わせを表示するテーブル ビューを定義できます。 テーブルの各行は、返されたオブジェクトを表します。 このビューの詳細については、「テーブル ビュー」 を参照してください。
リスト ビュー 1 つの列内のオブジェクトまたはスクリプト ブロック値のプロパティを一覧表示します。 リストの各行には、省略可能なラベルまたはプロパティ名の後にプロパティまたはスクリプト ブロックの値が表示されます。 このビューの詳細については、「リスト ビュー」 を参照してください。
ワイド ビュー オブジェクトの 1 つのプロパティ、または 1 つ以上の列のスクリプト ブロック値を一覧表示します。 このビューにはラベルやヘッダーはありません。 このビューの詳細については、「ワイド ビュー」 を参照してください。
カスタム ビュー テーブル ビュー、リスト ビュー、またはワイド ビューの固定構造に準拠していないオブジェクト プロパティまたはスクリプト ブロック値のカスタマイズ可能なビューを表示します。 スタンドアロン のカスタム ビューを定義するか、テーブル ビューやリスト ビューなどの別のビューで使用されるカスタム ビューを定義できます。 このビューの詳細については、「カスタム ビュー」 を参照してください。
XML 要素の表示
次の例は、2 つの列を含むテーブル ビューを定義するために使用される XML タグを示しています。 ViewDefinitions 要素は、書式設定ファイルで定義されているすべてのビューのコンテナー要素です。 View 要素は、特定のテーブル、リスト、ワイド、またはカスタム ビューを定義します。 各ビュー内で 、Name 要素はビューの名前を指定し 、ViewSelectedBy 要素はビューを使用するオブジェクトを定義し、さまざまなコントロール要素 (要素 TableControl
など) はビューの形式を定義します。
ViewDefinitions
<View>
<Name>Name of View</Name>
<ViewSelectedBy>
<TypeName>Object to display using this view</TypeName>
<TypeName>Object to display using this view</TypeName>
</ViewSelectedBy>
<TableControl>
<TableHeaders>
<TableColumnHeader>
<Width></Width>
</TableColumnHeader>
<TableColumnHeader>
<Width></Width>
</TableColumnHeader>
</TableHeaders>
<TableRowEntries>
<TableRowEntry>
<TableColumnItems>
<TableColumnItem>
<PropertyName>Header for column 1</PropertyName>
</TableColumnItem>
<TableColumnItem>
<PropertyName>Header for column 2</PropertyName>
</TableColumnItem>
</TableColumnItems>
</TableRowEntry>
</TableRowEntries>
</TableControl)
</View>
</ViewDefinitions>