向现有Powershell对象添加字符串属性的正确方法?

时间:2018-11-05 18:21:41

标签: powershell powershell-v4.0 powershell-v5.0

例如,我有一个$server的自定义对象。我想创建一个新属性$server.output来包含大小可变的多行输出。最好的方法是什么?在网络上似乎没有关于如何向对象添加简单字符串属性的直接信息?

仅供参考,我使用的是Powershell v4,但也可以为v5提供解决方案。

1 个答案:

答案 0 :(得分:4)

除了重新创建对象或确保对象初始化时存在属性外,还必须使用Add-Memberpscustomobject上创建新属性:

# alternatively, use `-Force` on `Add-Member`
if (-not ($obj | Get-Member -Name output))
{
    $obj | Add-Member -MemberType NoteProperty -Name output -Value ''
}

v3 +支持:

$obj | Add-Member -NotePropertyName output -NotePropertyValue '' -Force

添加多个成员:

$obj | Add-Member -NotePropertyMembers @{output = ''; output1 = ''} -Force

Add-Member