オブジェクトの書式設定 その2

by 山口 16. 7月 2008 10:38

前回の続きです。

今回はまずオブジェクト書式設定ファイルの各要素について説明します。

myfilesystem.format.ps1xml

1:   <?xml version="1.0" encoding="utf-8" ?>
2:   <Configuration>
3:        <SelectionSets>
4:            <SelectionSet>
5:                <Name>FileSystemTypes<Name>
6:                <Types>
7:                    <TypeName>System.IO.DirectoryInfo</TypeName>
8:                    <TypeName>System.IO.FileInfo</TypeName>
9:                </Types>
10:           </SelectionSet>
11:       </SelectionSets>
12:  
13:       <ViewDefinitions>
14:          <View>
15:               <Name>children</Name>
16:               <ViewSelectedBy>
17:                   <SelectionSetName>FileSystemTypes</SelectionSetName>
18:               </ViewSelectedBy>
19:               <TableControl>
20:                   <TableHeaders>
21:                       <TableColumnHeader />
22:                   <TableHeaders>
23:                   <TableRowEntries>
24:                       <TableRowEntry>
25:                           <TableColumnItems>
26:                               <TableColumnItem>
27:                                   <PropertyName>Name</PropertyName>
28:                               </TableColumnItem>
29:                           </TableColumnItems>
30:                       </TableRowEntry>
31:                   </TableRowEntries>
32:               </TableControl>
33:           </View>
34:       </ViewDefinitions>
35:  </Configuration>

1行目はこのファイルがXML文書であることを表す宣言なので必ず必要になります。

2行目から「Configuration」というルート要素が始まります。この下にオブジェクトの書式を記述していくことになります。

3行目からは「SelectionSets」という要素があり、これは「SelectionSet」をまとめるための要素になります。

SelectionSet

「SelectionSet」要素は書式を設定する型を指定するための要素です。

設定できる要素として、

  • Name
  • Types
    • TypeName

があります。

「Name」要素ではSelectionSetの名前(識別子)を指定します。

「Types」要素は「TypeName」をまとめる要素です。「TypeName」要素には型名を指定します。

ここでは「System.IO.FileInfo」型と「System.IO.DirectoryInfo」型を書式設定の対象の型として、「FileSystemTypes」という識別子を設定しています。

13行目からは「ViewDefinitions」という要素があり、これは「View」要素をまとめる要素になります。

View

「View」要素は実際の書式設定を指定するための要素です。

設定できる要素として、

  • Name
  • ViewSelectedBy
    • SelectionSetName
  • TableControl

があります。

「Name」要素ではViewの名前を指定します。

「ViewSelectedBy」要素は「SelectionSetName」をまとめる要素です。「SelectionSetName」要素にはこの書式設定を適用する対象のSelectionSetの名前を指定します。
ここでは、先程定義してあった「FileSystemTypes」が指定されています。

「TableControl」要素はオブジェクトをテーブル状に書式設定するための指定を行うための要素です。この他に「ListControl」というリスト状に書式設定する要素も用意されています。

では、もう一度このオブジェクト書式設定ファイルを適用したことによって、コンソールへの出力がどのように変更されたか見てみましょう。

PS > dir

Name ---- Documents and Settings Inetpub Program Files temp user WINDOWS AUTOEXEC.BAT CONFIG.SYS

「Name」という列だけが表示されています。

これは26行目から28行目で「TableColumnItem」要素で「PropertyName」に「Name」と指定されているからです。

では、これ以外のプロパティを表示するにはどうすればいいでしょうか?それには単純に以下のようにします。

19:               <TableControl>
20:                   <TableHeaders>
21:                       <TableColumnHeader />
22:                       <TableColumnHeader />
23:                   <TableHeaders>
24:                   <TableRowEntries>
25:                       <TableRowEntry>
26:                           <TableColumnItems>
27:                               <TableColumnItem>
28:                                   <PropertyName>Name</PropertyName>
29:                               </TableColumnItem>
30:                               <TableColumnItem>
31:                                   <PropertyName>Length</PropertyName>
32:                               </TableColumnItem>
33:                           </TableColumnItems>
34:                       </TableRowEntry>
35:                   </TableRowEntries>
36:               </TableControl>

22行目に「TableColumnHeader」要素を追加しています。この要素は表示する列(プロパティ)の数だけ必要になります。

30行目から32行目に「TableColumnItem」要素を追加し、「PropertyName」に「Length」と指定しています。

この書式設定を適用すると出力は以下のようになります。

PS > dir

Name Length ---- ------ Documents and Settings Inetpub Program Files temp user WINDOWS AUTOEXEC.BAT 0 CONFIG.SYS 0

「Length」という列が追加されているの確認できるはずです。

次は列名が英語で表示されているので、これを日本語に変えてみます。

20:                    <TableHeaders>
21:                        <TableColumnHeader>
22:                            <Label>名前<Label>
23:                        <TableColumnHeader>
24:                        <TableColumnHeader>
25:                            <Label>ファイルサイズ<Label>
26:                        <TableColumnHeader>
27:                    <TableHeaders>

列名を変更するには「TableColumnHeader」要素に「Label」要素を指定します。

このようにして、オブジェクト書式設定ファイルを使うとオブジェクトの表示形式をある程度自由にカスタマイズすることができます。

この他にも色々なカスタマイズが可能なので詳しくは以下のURLの記事を参考にして下さい。

最新のブログ

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

PowerShell

コメント

コメントを書く


 

  Country flag

biuquoteredbluegreenyellowPowerShellTextFile
  • コメント
  • プレビュー
Loading



Calendar

<<  3月 2010  >>
月曜火曜水曜木曜金曜土曜日曜
22232425262728
1234567
891011121314
15161718192021
22232425262728
2930311234

View posts in large calendar
Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

© Copyright 2010 PowerShell from Japan!!