Select-Object

モジュール:Microsoft.——-ユーティリティ

オブジェクトまたはオブジェクトプロパティを選択します。

構文

Select-Object >] 
Select-Object >] 

説明

Select-Objectコマンドレットは、オブジェクトまたはオブジェク また、一意のオブジェクト、指定された数のオブジェクト、または配列内の指定された位置にあるオブジェクトを選択することもできます。

コレクションからオブジェクトを選択するには、First、Last、Unique、Skip、andIndexパラメーターを使用します。 オブジェクトのプロパティを選択するには、Propertyパラメーターを使用します。 プロパティを選択すると、Select-Objectは、指定されたプロパティのみを持つ新しいオブジェクトを返します。

Windows PowerShell3.0以降では、Select-Objectには、コマンドが使用されていないオブジェクトを作成および処理するのを防ぐ最適化機能が含まれています。

commandpipelineの最初のパラメーターまたはインデックスパラメーターを指定してSelect-ObjectSelect-Objectコマンドの前にオブ この最適化動作をオフにするには、Waitparameterを使用します。

例1:プロパティでオブジェクトを選択

この例では、processオブジェクトのName、ID、およびworking set(WS)プロパティを持つオブジェクトを作成し

Get-Process | Select-Object -Property ProcessName, Id, WS

例2:プロパティでオブジェクトを選択し、結果をフォーマットする

この例では、コンピュータ上のプロセスで使用されるモジュー これは、Get-Processコマンドレットを使用して、コンピュータ上のプロセスを取得します。

Select-ObjectSystem.Diagnostics.ProcessinstanceoutputのModulesプロパティに含まれるGet-Process

Select-ObjectProcessNameNotePropertyが追加されますインスタンスとpopulatesit現在のプロセスのProcessNameプロパティの値。

最後に、Format-Listコマンドレットは、リスト内の各プロセスの名前とモジュールを表示するために使用されます。

例3:最も多くのメモリを使用しているプロセスを選択

この例では、最も多くのメモリを使用している五つのプロセスを取得します。 Get-ProcessSort-ObjectSelect-Objectコマンドレットは、オブジェクトの

Waitパラメーターは、Sort-ObjectSort-ObjectSelect-Object最適化は、オブジェクトが処理されるときにオブジェクトを個別に返すコマンドでのみ使用できます。

例4: 配列から一意の文字を選択

この例では、Select-Objectの一意のパラメータを使用して、arrayof文字から一意の文字を取得します。

"a","b","c","a","a","a" | Select-Object -Uniqueabc

例5:イベントログで最新および最古のイベントを選択

この例では、Windows PowerShellイベントログで最初(最新)および最後(最古)のイベン

Get-EventLogWindows PowerShellログ内のすべてのイベントを取得し、それらを$a$aSelect-ObjectSelect-Objectコマンドは、Indexparameterを使用して、$a変数内のイベントの配列からイベントを選択します。 Firsteventのインデックスは0です。 最後のイベントのインデックスは、$aの項目数から1を引いたものです。

$a = Get-EventLog -LogName "Windows PowerShell"$a | Select-Object -Index 0, ($A.count - 1)

例6:最初のオブジェクト以外のすべてを選択

この例では、サーバーにリストされている各コンピュータに新しいPSSessionを作成します。最初のものを除いて、txtファイル。

Select-Objectコンピュータ名のリスト内の最初のコンピュータ以外のすべてを選択します。 結果のlistof computersは、New-PSSessionコマンドレットのComputerNameパラメーターの値として設定されます。

New-PSSession -ComputerName (Get-Content Servers.txt | Select-Object -Skip 1)

例7:ファイルの名前を変更し、レビューするためにいくつかを選択

この例では、読み取り専用属性を持つテキストファイルのベース名に”-ro”サフィックスを追加し、最初の五つのファイルを表示して、ユーザーが効果のサンプルを見ることができるようにします。

Get-ChildItem読み取り専用ファイルを取得するには、ReadOnly動的パラメータを使用します。 結果のファイルはRename-ItemRename-ItemのPassthruパラメーターを使用して、名前を変更したファイルをSelect-Objectコマンドレットに送信し、最初の5つのfordisplayを選択します。

Select-ObjectのWaitパラメーターは、PowerShellがGet-ChildItemコマンドレットを停止しないようにします。 このパラメーターを指定しないと、firstfive読み取り専用ファイルのみの名前が変更されます。p>

Get-ChildItem *.txt -ReadOnly | Rename-Item -NewName {$_.BaseName + "-ro.txt"} -PassThru | Select-Object -First 5 -Wait

例8: -ExpandPropertyパラメーターの複雑さを示す

この例では、ExpandPropertyパラメーターの複雑さを示します。生成された出力は、インスタンスの配列であったことに注意してください。 インスタンスは、出力ビューの標準書式設定ルールに準拠しています。 これは、展開されたプロパティに当てはまります。 出力されたオブジェクトが特定の標準形式を持っている場合、展開されたプロパティは表示されない可能性があります。p>

# Create a custom object to use for the Select-Object example.$object = @{Name="CustomObject";Expand=@(1,2,3,4,5)}# Use the ExpandProperty parameter to Expand the property.$object | Select-Object -ExpandProperty Expand -Property Name12345# The output did not contain the Name property, but it was added successfully.# Use Get-Member to confirm the Name property was added and populated.$object | Select-Object -ExpandProperty Expand -Property Name | Get-MemberTypeName: System.Int32Name MemberType Definition---- ---------- ----------CompareTo Method int CompareTo(System.Object value), int CompareTo(int value), int IComparable.CompareTo(System.Object obj)...Equals Method bool Equals(System.Object obj), bool Equals(int obj), bool IEquatable.Equals(int other)GetHashCode Method int GetHashCode()GetType Method type GetType()GetTypeCode Method System.TypeCode GetTypeCode(), System.TypeCode IConvertible.GetTypeCode()ToBoolean Method bool IConvertible.ToBoolean(System.IFormatProvider provider)ToByte Method byte IConvertible.ToByte(System.IFormatProvider provider)ToChar Method char IConvertible.ToChar(System.IFormatProvider provider)ToDateTime Method datetime IConvertible.ToDateTime(System.IFormatProvider provider)ToDecimal Method decimal IConvertible.ToDecimal(System.IFormatProvider provider)ToDouble Method double IConvertible.ToDouble(System.IFormatProvider provider)ToInt16 Method int16 IConvertible.ToInt16(System.IFormatProvider provider)ToInt32 Method int IConvertible.ToInt32(System.IFormatProvider provider)ToInt64 Method long IConvertible.ToInt64(System.IFormatProvider provider)ToSByte Method sbyte IConvertible.ToSByte(System.IFormatProvider provider)ToSingle Method float IConvertible.ToSingle(System.IFormatProvider provider)ToString Method string ToString(), string ToString(string format), string ToString(System.IFormatProvider provider)...ToType Method System.Object IConvertible.ToType(type conversionType, System.IFormatProvider provider)ToUInt16 Method uint16 IConvertible.ToUInt16(System.IFormatProvider provider)ToUInt32 Method uint32 IConvertible.ToUInt32(System.IFormatProvider provider)ToUInt64 Method uint64 IConvertible.ToUInt64(System.IFormatProvider provider)Name NoteProperty string Name=CustomObject

例9: オブジェクトにカスタムプロパティを作成する

次の例では、Select-ObjectSelect-Objectは、渡された各オブジェクトにそのプロパティをaNotePropertyとして作成します。

例10:各InputObjectの計算されたプロパティを作成する

この例では、Select-Objectを使用して、計算されたプロパティを入力に追加します。 PropertyパラメーターにScriptBlockを渡すと、Select-Objectが渡された式oneachオブジェクトを評価し、結果を出力に追加します。 ScriptBlock内では、$_Select-ObjectはScriptBlock文字列をプロパティの名前として使用します。 AHashtableを使用すると、ScriptBlockの出力にeachobjectに追加されたカスタムプロパティとしてラベルを付けることができます。 Select-Objectに渡された各オブジェクトに複数の計算プロパティを追加できます。

パラメーター

-ExcludeProperty

このコマンドレットが操作から除外するプロパティを指定します。 ワイルドカードは許可されます。PowerShell6以降では、機能するためにPropertyパラメータforExcludePropertyを含める必要はなくなりました。

タイプ: 文字列 位置: 名前 デフォルト値: なし パイプライン入力を受け入れます: False ワイルドカード文字を受け入れる: True
-ExpandProperty

選択するプロパティを指定し、そのプロパティを展開しようとすることを示します。

  • 指定されたプロパティが配列の場合、配列の各値が出力に含まれます。
  • 指定されたプロパティがオブジェクトの場合、objectsプロパティはeveryInputObjectに対して展開されます

いずれの場合も、オブジェクト出力のタイプは展開

Propertyパラメータが指定されている場合、Select-Objectは、各selectedpropertyをNotePropertyとして出力されるすべてのオブジェクトに追加しようとします。Select:Property cannot be processed because property<PropertyName>-ExpandPropertySelect-Objectは既存のプロパティを置き換えることはできません。つまり、

  • 展開されたオブジェクトに同じ名前のプロパティがある場合、エラーが発生します。
  • 選択したオブジェクトが展開されたオブジェクトプロパティと同じ名前のプロパティを持つ場合、anerrorが発生します。
    タイプ: 文字列 位置: 名前付き デフォルト値: なし パイプライン入力を受け入れます: False td> ワイルドカード文字を受け入れる: false
-first

入力オブジェクトの配列の先頭から選択するオブジェクトの数を指定します。

タイプ: Int32 位置: 名前付き デフォルト値: なし パイプライン入力を受け入れます: False ワイルドカード文字を受け入れる: false
-index

インデックス値に基づいて配列からオブジェクトを選択します。 インデックスをカンマ区切りで入力しますリスト。 配列内のインデックスは0で始まり、0は最初の値を表し、(n-1)は最後の値を表します。

Type: Int32
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-InputObject

Specifies objects to send to the cmdlet through the pipeline. This parameter enables you to pipeobjects to Select-Object.

パイプラインを使用する代わりにInputObjectパラメーターにオブジェクトを渡すと、Select-Objectは、値がコレクションであっても、InputObjectを単一のオブジェクトとし コレクションをSelect-Objectに渡すときは、パイプラインを使用することをお勧めします。/td>

タイプ: PSObject 位置: 名前 デフォルト値: なし パイプライン入力を受け入れます: 真 tr> ワイルドカード文字を受け入れる: False
-Last

Specifies the number of objects to select from the end of an array of input objects.

Type: Int32
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Property

Specifies the properties to select. これらのプロパティは、notepropertyメンバーとしてtheoutputオブジェクトに追加されます。 ワイルドカードは許可されます。

Propertyパラメータの値は、新しい計算されたプロパティにすることができます。 計算されたプロパティを作成するには、ハッシュテーブルを使用します。

有効なキーは次のとおりです。

  • 名前(またはラベル)-<string>
  • 式-<string><script block>

詳細については、about_calculated_propertiesを参照してください。

デフォルト値 デフォルト値 デフォルト値 デフォルト値 デフォルト値 :パイプライン入力を受け入れる: False ワイルドカード文字を受け入れる: True
-スキップ

指定された数の項目をスキッ 既定では、Skipパラメーターは配列またはオブジェクトのリストの先頭からカウントされますが、コマンドが最後のパラメーターを使用する場合は、リストまたは配列の末尾からカウントされます。

0からカウントを開始するIndexパラメータとは異なり、Skipパラメータは1から始まります。p>

タイプ: Int32
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-SkipIndex
Type: Int32
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters:/td> False
-SkipLast

リストまたは配列の最後から指定された数の項目をスキップします(選択しません)。 最後のパラメータと一緒にSkipを使用するのと同じ方法で動作します。

0からカウントを開始するIndexパラメーターとは異なり、SkipLastパラメーターは1から始まります。

False ワイルドカード文字を受け入れる: False
-Unique

入力オブジェクトのサブセットが同じプロパティと値を持

このパラメータでは大文字と小文字が区別されます。 その結果、文字の大文字と小文字だけが異なる文字列は一意であると考えられています。

:

None パイプライン入力を受け入れる: False ワイルドカード文字を受け入れる: False
-Wait

コマンドレットが最適化をオフにすることを示します。 PowerShellは、コマンドパイプラインに表示される順序でコマンドを実行し、すべてのオブジェクトを生成できます。 既定では、コマンドパイプラインの最初のパラメーターまたはインデックスパラメーターを指定してSelect-Objectコマンドを含めると、PowerShellstopsは、選択した数のオブジ

このパラメーターは、Windows PowerShell3.0で導入されました。

タイプ: スイッチパラメータ 位置: 名前 デフォルト値: なし パイプライン入力を受け入れます: False ワイルドカード文字を受け入れる: False

入力

PSObject

任意のオブジェクトをSelect-Objectにパイプできます。

出力

PSObject

ノート

  • Select-Objectselectで参照することもできます。 詳細については、about_aliasesを参照してください。

  • Select-Objectの最適化機能は、処理されるときにパイプラインにオブジェクトを書き込むコマンドでのみ使用できます。 処理されたオブジェクトをバッファし、それらをコレクションとして書き込むコマンドには影響しません。 オブジェクトをすぐに記述することは、コマンドレットの設計のベストプラクティスです。 詳細については、”パイプラインへの単一レコードの書き込み”を参照してください。

  • about_calculated_properties
  • グループオブジェクト
  • ソートオブジェクト
  • Where-Object

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です