1. ホーム
  2. arrays

[解決済み] PowerShellで配列のすべてのオブジェクトの1つのプロパティの値を選択する

2022-04-24 03:49:28

質問

例えば、オブジェクトの配列 $objects があるとします。これらのオブジェクトは、"Name" プロパティを持っているとします。

これは私がやりたいことです

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

これはうまくいくのですが、もっといい方法はないでしょうか?

というようなことをしたら。

 $results = objects | select Name

$results は、Name プロパティを持つオブジェクトの配列です。私は$resultsがNamesの配列を含むことを望みます。

何か良い方法はないでしょうか?

どのように解決するのですか?

を使用することができるかもしれませんね。 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