powershell - 从一个对象中拆分两个对象
问题描述
我已经将一个实际上是两个不同对象的对象导入到一个变量中:
PS> $object | gm
TypeName: Deserialized.System.Management.Automation.PSCustomObject
...
TypeName: System.Security.Cryptography.X509Certificates.X509Certificate2
...
我只能从第一个对象访问信息。有没有办法根据 TypeName 将其拆分为两个变量?
解决方案
PowerShell 支持解构/并行分配,正式称为多重分配。
如果您知道collection 中包含的对象的顺序$object
:
$custObj, $cert = $object # $custObj receives $object[0], $cert the rest.
$custObj
将接收包含在 中的第一个对象$object
,$cert
其余的 - 在 2 元素集合的情况下是第二个元素(作为标量;如果集合有更多元素,$cert
将接收一个数组( [object[]]
))。
否则,在PowerShell v4+中,您可以使用.Where()
collection 方法根据条件将集合一分为二:
$cert, $custObj = $objects.Where(
{ $_ -is [System.Security.Cryptography.X509Certificates.X509Certificate2] },
'Split'
)
推荐阅读
- java - 如何检查数组中的值以查找在另一个数组中找到的特定字符串?
- http - 从直播电台流中提取 EXTINF 的歌曲信息
- kendo-ui - 具有数据字符串数组的可过滤模式“行”
- mysql - Laravel Eloquent 创建方法跳过 ID 并返回它们
- javascript - 如何将承诺的结果保存到变量中?
- google-sheets - 从 Web 域获取 IP 地址
- javascript - 如果字符串是“!”,则从字符串中删除最后一个字符 使用 For 循环 - JavaScript
- javascript - 如何临时更改某些文本的颜色?
- php - PHP 代码正在运行,但不显示谁是发件人。只显示 noreply@example.com
- arrays - MongoDB 更新查询 - 带有嵌入查询的文档