假设我们有一个对象数组 $objects。假设这些对象具有“名称”属性。
这就是我想做的
$results = @() $objects | %{ $results += $_.Name }
这行得通,但是可以以更好的方式完成吗?
如果我这样做:
$results = objects | select Name
$results是具有 Name 属性的对象数组。我希望 $results 包含一个名称数组。
$results
有没有更好的办法?
我想你也许可以ExpandProperty使用Select-Object.
ExpandProperty
Select-Object
例如,要获取当前目录的列表并只显示 Name 属性,可以执行以下操作:
ls | select -Property Name
这仍然返回 DirectoryInfo 或 FileInfo 对象。您始终可以通过管道到Get- Member(别名gm)来检查通过管道的类型。
gm
ls | select -Property Name | gm
因此,要将对象 扩展 为您正在查看的属性类型,您可以执行以下操作:
ls | select -ExpandProperty Name
在您的情况下,您可以执行以下操作以使变量成为字符串数组,其中字符串是 Name 属性:
$objects = ls | select -ExpandProperty Name