将字符串 属性 添加到现有 Powershell 对象的正确方法?
Correct way to add a string property to existing Powershell object?
例如,我有一个 $server
的自定义对象。我想创建一个新的 属性、$server.output
来包含不同大小的多行输出。最好的方法是什么?网络上似乎没有关于如何向对象添加简单字符串属性的任何直接信息?
仅供参考,我使用的是 powershell v4,但最好也有 v5 的解决方案。
除了重新创建对象或确保 属性 在对象初始化时存在之外,您必须使用 Add-Member
在 pscustomobject
上创建新属性:
# 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
例如,我有一个 $server
的自定义对象。我想创建一个新的 属性、$server.output
来包含不同大小的多行输出。最好的方法是什么?网络上似乎没有关于如何向对象添加简单字符串属性的任何直接信息?
仅供参考,我使用的是 powershell v4,但最好也有 v5 的解决方案。
除了重新创建对象或确保 属性 在对象初始化时存在之外,您必须使用 Add-Member
在 pscustomobject
上创建新属性:
# 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