powershell - 当输出包含@{时如何扩展多个属性,}?
问题描述
我知道有很多关于扩展单个属性的帖子,希望这是一个简单的帖子,但是由于 select-string -simplematch,我的输出看起来像这样
@{品牌=大众; 型号=帕萨特}
@{品牌=福特;型号=蒙迪欧}
但是如何扩展这两个属性并使输出看起来像这样呢?
大众、帕萨特
福特、蒙迪欧
当我做一个选择对象 * 我得到以下但我似乎不能只得到值
IgnoreCase : True
Linenumber : 1
Line : @{Brand=Volkswagen; Model=Passat}
文件名:InputStream
路径:InputStream
模式:@{Brand=Volkwagen; 模型=帕萨特}
上下文:
匹配:{}}
IgnoreCase : True
Linenumber : 2
Line : @{Brand=Ford; Model=Mondeo}
文件名:InputStream
路径:InputStream
模式:@{Brand=Ford; 模型=蒙迪欧}
上下文:
匹配:{}}
解决方案
不要select-string
在 PsObjects 集合上执行此操作,因为该 cmdlet 旨在查找字符串和文件中的文本..
Select-Object -ExpandProperty
允许您扩展一个属性,而不是全部。如果您想要这样的输出,请遍历数组中的对象并按照您想要的方式将属性组合成一个字符串。
假设你的数组是这样的:
$theCarCollection = [PsCustomObject]@{Brand='Volkswagen'; Model='Passat'},
[PsCustomObject]@{Brand='Ford'; Model='Mondeo'}
然后通过遍历对象并选择所需的属性来格式化输出
($theCarCollection | ForEach-Object { '{0}, {1}' -f $_.Brand, $_.Model }) -join [environment]::NewLine
这将输出:
Volkswagen, Passat
Ford, Mondeo
推荐阅读
- javascript - css中如何确定safe-area-inset-*的值
- php - PHP_CodeSniffer 规则排除“X 类缺少文档注释”
- delphi - “窗口任务管理器”的“任务”栏中显示的内容
- ios - 使用 SwiftJSON 解包值会导致 iOS13 上的错误
- r - R 在 linux 上安装 tidyverse 的问题
- r - “错误:靠近”。“:语法错误”与 R 中的 sqldf
- android - 在动画期间清除后台堆栈
- php - 如何在 Symfony 5 中为迁移的表添加前缀
- kubernetes - 为什么集群节点的ip不是当前pod的ip
- javascript - 从 React-Select 组件中获取所选值的最佳方法是什么?