小编典典

在 PowerShell 中选择数组的所有对象上的一个属性的值

all

假设我们有一个对象数组 $objects。假设这些对象具有“名称”属性。

这就是我想做的

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

这行得通,但是可以以更好的方式完成吗?

如果我这样做:

 $results = objects | select Name

$results是具有 Name 属性的对象数组。我希望 $results 包含一个名称数组。

有没有更好的办法?


阅读 62

收藏
2022-08-24

共1个答案

小编典典

我想你也许可以ExpandProperty使用Select-Object.

例如,要获取当前目录的列表并只显示 Name 属性,可以执行以下操作:

ls | select -Property Name

这仍然返回 DirectoryInfo 或 FileInfo 对象。您始终可以通过管道到Get-
Member
(别名gm)来检查通过管道的类型。

ls | select -Property Name | gm

因此,要将对象 扩展 为您正在查看的属性类型,您可以执行以下操作:

ls | select -ExpandProperty Name

在您的情况下,您可以执行以下操作以使变量成为字符串数组,其中字符串是 Name 属性:

$objects = ls | select -ExpandProperty Name
2022-08-24