首页 > 解决方案 > Powershell - 如何将多个对象添加到自定义对象的属性中?

问题描述

我目前正在做一个项目来记录一堆 SSIS 包。由于包存储在 XML 中,因此很容易将包导入为 XML,并且我可以获得所需的信息。

我想我想做的是用我自己定义的属性捕获对象中的关键信息,所以最后我可以以我选择的格式导出对象。

我试图了解对象的属性以及如何将多个对象分配给一个属性。

例如,我创建了一个代表 SSIS 包的对象 $Package。该包将具有一些顶级属性,例如名称、路径和类型,所有这些属性都存储为字符串。但是包中有 5 个 ConnectionManager,所以我想将代表 ConnectionManager 的 5 个对象分配给 $Package。现在其中一个连接管理器有 2 个表达式,所以我想为 ConnectionManager 属性下的表达式属性引用 2 个对象。

如何将对象集合添加为现有自定义对象的属性,我必须一次将它们全部添加还是可以添加到该集合中?

标签: powershell

解决方案


关于 Bee_Riii 的评论,您不必在定义对象时包含所有属性。您可以使用Add-Member添加新数组。

Add-Member -InputObject $p -NotePropertyName myVariables -NotePropertyValue @(1,2,3)

您也可以选择使用现有值。

$existingValue = @(1,2,3)
   
Add-Member -InputObject $p -NotePropertyName myVariables -NotePropertyValue $existingValue

这里我使用变量名myVariables作为预防措施。通用名称喜欢name并且variable经常与现有属性发生冲突。我养成了在这些名字前面加上“我的”以避免冲突的习惯。

您可能会发现这些资源很有用:


推荐阅读