オブジェクトの配列 $objects があるとします。これらのオブジェクトには「Name」プロパティがあるとします。
これが私がやりたいことだ
$results = @()
$objects | %{ $results += $_.Name }
これは機能しますが、もっと良い方法で実行できますか?
次のようなことをすると:
$results = objects | select Name
$results
Name プロパティを持つオブジェクトの配列です。$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