プロパティを抽出する Select-Object (PowerShell入門)

この記事は以前 http://hiros-dot.net/ へ書いたものです。。

今回は、パイプ演算子と共に使用する Select-Objectコマンドレットを紹介します。

Select-Objectコマンドレットはオブジェクトまたは一連のオブジェクトの指定されたプロパティを選択します。

Get-ChildItemコマンドレットが持つプロパティの指定したものだけを抜き出してみましょう。

その前に Get-ChildItemコマンドレットで取得可能なプロパティを調査してみます。

Get-Memberコマンドレットで-MmemberTypeパラメータにpropertyと指定することでプロパティのみを表示します。

PS C:\Work> Get-ChildItem | Get-Member -MemberType property
TypeName: System.IO.FileInfo
Name              MemberType Definition
----              ---------- ----------
Attributes        Property   System.IO.FileAttributes Attributes {get;set;}
CreationTime      Property   System.DateTime CreationTime {get;set;}
CreationTimeUtc   Property   System.DateTime CreationTimeUtc {get;set;}
Directory         Property   System.IO.DirectoryInfo Directory {get;}
DirectoryName     Property   System.String DirectoryName {get;}
Exists            Property   System.Boolean Exists {get;}
Extension         Property   System.String Extension {get;}
FullName          Property   System.String FullName {get;}
IsReadOnly        Property   System.Boolean IsReadOnly {get;set;}
LastAccessTime    Property   System.DateTime LastAccessTime {get;set;}
LastAccessTimeUtc Property   System.DateTime LastAccessTimeUtc {get;set;}
LastWriteTime     Property   System.DateTime LastWriteTime {get;set;}
LastWriteTimeUtc  Property   System.DateTime LastWriteTimeUtc {get;set;}
Length            Property   System.Int64 Length {get;}
Name              Property   System.String Name {get;}

多くのプロパティを持っていることがわかります。

では、Get-ChildItemで取得できる結果からFullNameとLastWriteTimeの列のみを抜き出してみましょう。

特定のプロパティを抽出するにはSelect-Objectコマンドレットを使用します。

抽出したい項目をSelect-Objectの隣にカンマで区切って記述します。

PS C:\Work> Get-ChildItem | Select-Object FullName, LastWriteTime
FullName                                                    LastWriteTime
--------                                                    -------------
C:\Work\Debug.ps1                                           2008/07/11 23:19:01
C:\Work\err.txt                                             2008/07/17 22:41:56
C:\Work\Scope1.ps1                                          2008/07/16 22:02:24
C:\Work\Scope2.ps1                                          2008/07/16 22:09:31
C:\Work\Scope3.ps1                                          2008/07/16 22:26:39
C:\Work\Scope4.ps1                                          2008/07/16 22:28:11
C:\Work\Scope5.ps1                                          2008/07/16 22:30:27
C:\Work\Strict.ps1                                          2008/07/17 22:28:24
C:\Work\Test.xml                                            2008/07/08 23:38:56
C:\Work\trap.ps1                                            2008/07/08 23:11:15
C:\Work\trap1.ps1                                           2008/07/08 23:16:29

どうでしょうか?  Select-Objectコマンドレットを使用すると、必要なプロパティのみを抽出することができますね。

次回はWhere-Objectコマンドレットについて説明したいと思います。

コメント

  1. 行动是治愈恐惧的良药,而犹豫拖延将不断滋养恐惧。

タイトルとURLをコピーしました