无法执行添加成员:“数组尺寸超出了支持的范围。”

时间:2018-07-11 12:28:02

标签: arrays powershell properties

我有一个名为 $ restoreItems 的对象,该对象要过滤重复属性值并选择最新的属性值。

请先查看其成员以了解我正在使用什么:

enter image description here

为了能够检查重复项,我需要组合使用“ DirName”和“ LeafName”属性,因为这种组合可以构建完整的文件路径。

这是我的第一个问题。我无法将这两个属性结合起来并添加到该对象中。我试图像这样添加新成员:

$restoreItems | Add-Member -NotePropertyName fullPath -NotePropertyValue 
($restoreItems.Dirname + '/' + $restoreItems.LeafName)

此命令运行良好,但在调用时

$restoreItems.fullPath

我收到一条错误消息,指出“数组尺寸超出了支持的范围。”

还有另一种方法可以将 $ restoreItems.Dirname +'/'+ $ restoreItems.LeafName 添加到对象吗?如果是这样,我可能可以根据其 DeletedDate 属性找到排除重复项的方法。

感谢您的帮助。

编辑:这是该对象的.GetType():

enter image description here

1 个答案:

答案 0 :(得分:3)

您的声明

($restoreItems.Dirname + '/' + $restoreItems.LeafName)

构建一个包含所有目录名,字符串“ \”和所有叶名的数组。

您真正想要的是这样的东西:

$restoreItems | ForEach-Object {
    $fullname = Join-Path $_.DirName $_.LeafName
    $_ | Add-Member -Type NoteProperty -Name FullName -Value $fullname
}