PowerShell で配列のすべてのオブジェクトの 1 つのプロパティの値を選択する 質問する

PowerShell で配列のすべてのオブジェクトの 1 つのプロパティの値を選択する 質問する

オブジェクトの配列 $objects があるとします。これらのオブジェクトには「Name」プロパティがあるとします。

これが私がやりたいことだ

 $results = @()
 $objects | %{ $results += $_.Name }

これは機能しますが、もっと良い方法で実行できますか?

次のようなことをすると:

 $results = objects | select Name

$resultsName プロパティを持つオブジェクトの配列です。$results に Name の配列を含めるようにします。

もっと良い方法はあるでしょうか?

ベストアンサー1

ExpandPropertyのパラメータを使用できると思いますSelect-Object

たとえば、現在のディレクトリのリストを取得し、Name プロパティのみを表示するには、次のようにします。

ls | select -Property Name

これはまだDirectoryInfoまたはFileInfoオブジェクトを返します。パイプラインを通過する型をいつでも検査できます。メンバー登録(別名gm)。

ls | select -Property Name | gm

する拡大するオブジェクトを、確認しているプロパティのタイプのものにするには、次の操作を実行します。

ls | select -ExpandProperty Name

あなたの場合、変数を文字列の配列にするには、次の操作を実行します。ここで、文字列は Name プロパティです。

$objects = ls | select -ExpandProperty Name

おすすめ記事