Powershell 子级 属性 参考父级 属性
Powershell Child Property Reference Parent Property
我正在尝试使用父对象 属性 在自定义对象中设置子对象 属性。
$objServer = New-Object PSObject -Property @{
Name = "Some Name";
BaseFilePath = "c:\somepath"
Section1 = New-Object PSObject -Property @{
FilePath=$objServer.BaseFilePath + '\' + $objServer.Name + '\section1';
AncestorId="557309";
Title="Section 1";
Enabled=$processFlag1;
}
Section2 = New-Object PSObject -Property @{
FilePath={$_.Parent.BaseFilePath} + '\' + {$_.Parent.Name} + '\' + '\section2';
AncestorId="557319";
Title="Tables";
Enabled=$processFlag2;
}
}
第 1 节和第 2 节是我尝试过的语法示例。这可能吗?我做错了什么?
问题是嵌套。必须先创建父对象属性的哈希表,然后才能将其传递到创建父对象的 cmdlet,因此您不能引用尚不存在的内容。
分两步进行。创建父级,然后在事实之后添加一个成员:
$objServer = New-Object PSObject -Property @{
Name = "Some Name"
BaseFilePath = "c:\somepath"
}
$objServer | Add-Member -NotePropertyName Section1 -NotePropertyValue (
New-Object PSObject -Property @{
FilePath=$objServer.BaseFilePath + '\' + $objServer.Name + '\section1';
AncestorId="557309";
Title="Section 1";
Enabled=$processFlag1;
}
)
我正在尝试使用父对象 属性 在自定义对象中设置子对象 属性。
$objServer = New-Object PSObject -Property @{
Name = "Some Name";
BaseFilePath = "c:\somepath"
Section1 = New-Object PSObject -Property @{
FilePath=$objServer.BaseFilePath + '\' + $objServer.Name + '\section1';
AncestorId="557309";
Title="Section 1";
Enabled=$processFlag1;
}
Section2 = New-Object PSObject -Property @{
FilePath={$_.Parent.BaseFilePath} + '\' + {$_.Parent.Name} + '\' + '\section2';
AncestorId="557319";
Title="Tables";
Enabled=$processFlag2;
}
}
第 1 节和第 2 节是我尝试过的语法示例。这可能吗?我做错了什么?
问题是嵌套。必须先创建父对象属性的哈希表,然后才能将其传递到创建父对象的 cmdlet,因此您不能引用尚不存在的内容。
分两步进行。创建父级,然后在事实之后添加一个成员:
$objServer = New-Object PSObject -Property @{
Name = "Some Name"
BaseFilePath = "c:\somepath"
}
$objServer | Add-Member -NotePropertyName Section1 -NotePropertyValue (
New-Object PSObject -Property @{
FilePath=$objServer.BaseFilePath + '\' + $objServer.Name + '\section1';
AncestorId="557309";
Title="Section 1";
Enabled=$processFlag1;
}
)