在 JavaScript 中,您可以使用扩展运算符来克隆对象,然后扩展其属性。powershell 中是否有等效的操作来完成此操作?
JS示例:
const b = {
...a,
newProp: 'abc'
}
Run Code Online (Sandbox Code Playgroud)
StackOverflow(例如)上有各种关于克隆对象的讨论。我已经有一段时间没有重新访问它们了,但是.Clone()由于对象本身缺乏方法,这些方法通常似乎只是浅层克隆。这意味着深度嵌套的属性以及更复杂的属性(例如数组和/或其他对象)不容易被克隆。然而,在 PowerShell 中扩展对象很容易。 通过使用计算属性Select-Object具有这样的能力。将输出一个类型为的新对象。您可以使用添加属性,同时维护原始对象的正式类型,但是这会添加到它传递的对象中,您可能需要尝试才能实现问题的克隆方面。Select-Object[PSCustomObject]Add-Member
可能的例子:
# Get an object to work with:
$OriginalObject = (Get-Process)[0]
$NewObject =
$OriginalObject |
Select-Object *,@{Name = 'Date'; Expression = { Get-Date } }
Run Code Online (Sandbox Code Playgroud)
这会添加一个日期属性,其值是表达式的结果。诚然,这里没那么有用,但这只是为了证明这一点。继承*了现有的属性,从而产生了接近原始属性加上新属性的克隆。您可以在表达式中添加任何您想要的内容,并添加任意数量的属性。所以您可以看到计算属性背后有很多实用性。您还可以通过命名源对象的实际属性而不是通配符 ( ) 来进一步定制对象*。
| 归档时间: |
|
| 查看次数: |
1442 次 |
| 最近记录: |