小编gri*_*sha的帖子

如何从数组向PowerShell对象添加属性

我有一个属性名称和值的二维数组,我需要添加到PowerShell对象.

使用New-ObjectAdd-Member创建和显示这样的对象没有任何问题:

$obj = New-Object PSObject
$obj | Add-Member NoteProperty IName($fiel.IName)
$obj | Add-Member NoteProperty SName($fiel.SName)
$obj | Add-Member NoteProperty Taggy($fiel.Taggy)
$obj | Add-Member NoteProperty Title($fiel.Title)

Write-Output $obj
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

但是,当我尝试这样的事情时:

for ($k=0; $k -lt $fieldsArray.Count; $k++)
{
    $itemobj | Add-Member –MemberType NoteProperty –Name $fieldsArray[$k].InternalName –Value $itemki[$j][$fieldsArray[$k].InternalName]
    #Write-Host $k
    #Write-Host $fieldsArray[$k].InternalName.ToString()
    #Write-Host $itemki[$j][$fieldsArray[$k].InternalName]
}

Write-Output $itemobj
Run Code Online (Sandbox Code Playgroud)

Write-Output $ itemobj将只返回一个应该添加的属性成员而没有任何整齐的列名.
添加了注释掉的部分用于测试目的并返回所有项目的正确值.

我也试过了

$itemobj | Add-Member NoteProperty $fieldsArray[$k].InternalName.ToString()($fieldsArray[$k].InternalName)
Run Code Online (Sandbox Code Playgroud)

没有任何改进.

为什么没有添加其他房产成员?

我有我需要的数据.如果我写:

for ($k=0; $k -lt $fieldsArray.Count; $k++)
{
    Write-Host $k …
Run Code Online (Sandbox Code Playgroud)

powershell properties object powershell-ise

7
推荐指数
3
解决办法
5万
查看次数

标签 统计

object ×1

powershell ×1

powershell-ise ×1

properties ×1