开发者社区> 问答> 正文

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

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

这就是我想做的

$results = @() $objects | %{ $results += $_.Name } 这行得通,但是可以用更好的方式做到吗?

如果我做类似的事情:

$results = objects | select Name $results是具有Name属性的对象数组。我希望$ results包含一个Names数组。

有没有更好的办法? 问题来源于stack overflow

展开
收起
保持可爱mmm 2020-02-07 22:51:02 558 0
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

    2020-02-07 22:51:24
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载