我是powershell的新手,我现在开始研究对象等。我以这种方式创建对象:
$myObject = [PSCustomObject]@{
ComputerName = "abc"
Data = "xxx"
}
如果我再打印$myObject
,我得到的是:
ComputerName Data
------------ ----
abc xxx
而且一切都很好,现在我想向该对象添加一个属性,并且我看到(如果我错了,请告诉我)可以用两种方式来做到这一点:add-member
和select-object
例如,使用add-member
,我所做的是:
$myObject | Add-member -NotePropertyName Level -NotePropertyValue Highest
代替Select-object
,我做了:
$myobject = 2 (cause i want to add 2 properties, is it right?) | Select-Object -Property Level, Privilege
$myobject.Level = "High"
$myobject.Privilege = "Elevated"
现在如果我运行$myobject
,我仍然只会得到:
ComputerName Data
------------ ----
abc xxx
Select-Object
添加的属性中吗?谢谢您可以在PsCustomObject上使用Add-Member方法。
$myObject = [PSCustomObject]@{
ComputerName = "abc"
Data = "xxx"
}
$myObject | Add-Member -NotePropertyName Level -NotePropertyValue High
$myObject | Add-Member Privilege Elevated
$myObject
#Output looks like,
ComputerName Data Level Privilege
------------ ---- ----- ---------
abc xxx High Elevated
您可以使用添加成员或选择对象。面对不同情况下的优点或缺点,我只想举一个Select-Object示例。只需两种方法即可:
$myObject |
Select-Object *,
@{Name = 'Level'; Expression = { 'High' } },
@{Name = 'Privilege'; Expression = { 'Elevated' } }
PowerShell允许您提供哈希表来定义新属性。您会注意到它看起来与用于创建对象的哈希非常相似。通常,表达式将利用$ _语法来计算属性的值。在这里,您通常将这些称为计算属性。