Object powershellv2-向自定义对象添加新参数

Object powershellv2-向自定义对象添加新参数,object,powershell-2.0,Object,Powershell 2.0,我已经使用下面的代码创建了一个自定义对象,但现在需要添加一个附加属性 $TestList = @( "item1" "item2" ) $TESTObject = @() foreach($a in $TestList) { $dItem = $a $TESTObject += New-Object PSObject -property @{ item = "$dItem"; } } F

我已经使用下面的代码创建了一个自定义对象,但现在需要添加一个附加属性

$TestList = @(
"item1"
"item2"
)

$TESTObject = @()
foreach($a in $TestList)
    {
        $dItem = $a

        $TESTObject += New-Object PSObject -property @{
                item = "$dItem";
            }
    }

FOREACH($a in $TESTObject)
{   
    #DO STUFF HERE

    $newVar = 1234

    $a | Add-Member newvar $newVar   
}
阅读在线文档和帮助文件表明我需要使用
addmember
(根据下面的示例)。 但当我运行这个时,我得到:

Add-Member : A positional parameter cannot be found that accepts argument 'newvar'.
$TestList = @(
"item1"
"item2"
)

$TESTObject = @()
foreach($a in $TestList)
    {
        $dItem = $a

        $TESTObject += New-Object PSObject -property @{
                item = "$dItem";
            }
    }

FOREACH($a in $TESTObject)
{   
    #DO STUFF HERE

    $newVar = 1234

    $a | Add-Member newvar $newVar   
}
向对象添加新参数的正确语法是什么

$TestList = @(
"item1"
"item2"
)

$TESTObject = @()
foreach($a in $TestList)
    {
        $dItem = $a

        $TESTObject += New-Object PSObject -property @{
                item = "$dItem";
            }
    }

FOREACH($a in $TESTObject)
{   
    #DO STUFF HERE

    $newVar = 1234

    $a | Add-Member newvar $newVar   
}
另外,如果我想用不同的值更新参数,我可以使用相同的add成员吗?(似乎没有“更新成员”cmdlet)

$TestList = @(
"item1"
"item2"
)

$TESTObject = @()
foreach($a in $TestList)
    {
        $dItem = $a

        $TESTObject += New-Object PSObject -property @{
                item = "$dItem";
            }
    }

FOREACH($a in $TESTObject)
{   
    #DO STUFF HERE

    $newVar = 1234

    $a | Add-Member newvar $newVar   
}

我发现这样做的方法是:

$TestList = @(
"item1"
"item2"
)

$TESTObject = @()
foreach($a in $TestList)
    {
        $dItem = $a

        $TESTObject += New-Object PSObject -property @{
                item = "$dItem";
            }
    }

FOREACH($a in $TESTObject)
{   
    #DO STUFF HERE

    $newVar = 1234

    $a | Add-Member newvar $newVar   
}
将成员添加到自定义(
PSObject
)对象

$TestList = @(
"item1"
"item2"
)

$TESTObject = @()
foreach($a in $TestList)
    {
        $dItem = $a

        $TESTObject += New-Object PSObject -property @{
                item = "$dItem";
            }
    }

FOREACH($a in $TESTObject)
{   
    #DO STUFF HERE

    $newVar = 1234

    $a | Add-Member newvar $newVar   
}
以及更新我使用的现有成员

$TestList = @(
"item1"
"item2"
)

$TESTObject = @()
foreach($a in $TestList)
    {
        $dItem = $a

        $TESTObject += New-Object PSObject -property @{
                item = "$dItem";
            }
    }

FOREACH($a in $TESTObject)
{   
    #DO STUFF HERE

    $newVar = 1234

    $a | Add-Member newvar $newVar   
}
Add-Member -InputObject $TESTObject -MemberType NoteProperty -Name newVar -Value $newVar -force
我不确定这是否是最好的方法(甚至是正确的方法)。但它似乎奏效了

$TestList = @(
"item1"
"item2"
)

$TESTObject = @()
foreach($a in $TestList)
    {
        $dItem = $a

        $TESTObject += New-Object PSObject -property @{
                item = "$dItem";
            }
    }

FOREACH($a in $TESTObject)
{   
    #DO STUFF HERE

    $newVar = 1234

    $a | Add-Member newvar $newVar   
}