「get-process」のプロパティは8つしかない?
Monadを起動し
get-process
と入力すると以下のような結果が表示されます。
Handles NPM(K) PM(K) WS(K) VS(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
274 16 14460 22196 153 6.27 2396 B2
128 4 2352 9456 34 0.34 636 BsCLiP
83 6 2080 2952 71 0.58 1508 clnch
(中略)各プロセス毎に8つのプロパティが表示されます。
では「get-process」のプロパティは7つしかない…ということでしょうか?
「get-process」で取得されるオブジェクトの型を調べる
MSH C:\> (get-process)[0].gettype().fullname System.Diagnostics.Process
「System.Diagnostics.Process」のプロパティを調べる
MSH C:\> get-process | get-member -membertype property
TypeName: System.Diagnostics.Process
Name MemberType Definition
---- ---------- ----------
BasePriority Property System.Int32 BasePriority {get;}
Container Property System.ComponentModel.IContainer Container {get;}
EnableRaisingEvents Property System.Boolean EnableRaisingEvents {get;set;}
ExitCode Property System.Int32 ExitCode {get;}
ExitTime Property System.DateTime ExitTime {get;}
Handle Property System.IntPtr Handle {get;}
HandleCount Property System.Int32 HandleCount {get;}
(中略)「get-process」で取得される「System.Diagnostics.Process」オブジェクトは、
50個以上のプロパティを持っていることが分かりました。
では、
get-process
と入力した時に、なぜ8つしかプロパティが表示されないのでしょうか?
オブジェクトのView定義
Monadでは、標準出力にオブジェクトが渡された際のプロパティなど、Viewの情報は「Format.mshxml」に定義します。
「Format.mshxml」には、
- どのようなプロパティをどの順で表示するか
- 表示名称、表示幅、アライメント
などを定義することができます。
「System.Diagnostics.Process」のViewは、Monadインストールディレクトリの「DotNetTypes.Format.mshxml」に定義されています。
今回はここまでです。
次回は、「DotNetTypes.Format.mshxml」のView定義を見てみましょう。