這是將 PsObject 作為父 PsObject 的屬性的正確方法嗎?
這似乎有點麻煩,是正確的方法,我也不能點源(見底部的圖片)子 PsObject 的屬性。
$function1.引數 | 佛羅里達州
資訊動作:@{InformationAction=IA1; 名稱=資訊操作;引數型別=系統。字串;ParameterSets={[__AllParameterSets, System.Management.Automation.ParameterSetMetadata]}; 是動態的=假;別名=ia; 屬性=; 開關引數=假}
警告動作:@{WarningAction=IA1; 名稱=警告操作;引數型別=系統。字串;ParameterSets={[__AllParameterSets, System.Management.Automation.ParameterSetMetadata]}; 是動態的=假;別名=ia; 屬性=; 開關引數=假}
錯誤動作:@{ErrorAction=IA1; 名稱=錯誤操作;引數型別=系統。字串;ParameterSets={[__AllParameterSets, System.Management.Automation.ParameterSetMetadata]}; 是動態的=假;別名=ia; 屬性=; 開關引數=假}
資訊變數:@{InformationVariable=IA1; 名稱=資訊變數;引數型別=系統。字串;ParameterSets={[__AllParameterSets, System.Management.Automation.ParameterSetMetadata]}; 是動態的=假;別名=ia; 屬性=; 開關引數=假}
警告變數:@{WarningVariable=IA1; 名稱=警告變數;引數型別=系統。字串;ParameterSets={[__AllParameterSets, System.Management.Automation.ParameterSetMetadata]}; 是動態的=假;別名=ia; 屬性=; 開關引數=假}
錯誤變數:@{ErrorVariable=IA1; 名稱=錯誤變數;引數型別=系統。字串;ParameterSets={[__AllParameterSets, System.Management.Automation.ParameterSetMetadata]}; 是動態的=假;別名=ia; 屬性=; 開關引數=假}
這是一個復制我正在做的事情的代碼片段。
#Region Step 1 (create object)
$function1 = New-Object PsObject;
$function1 | Add-Member -NotePropertyName "Name" -NotePropertyValue "Test1";
$function1 | Add-Member -NotePropertyName "Params" -NotePropertyValue $null;
$param1 = New-Object PsObject;
$param1 | Add-Member -NotePropertyName "InformationAction" -NotePropertyValue "IA1";
$param1 | Add-Member -NotePropertyName "Name" -NotePropertyValue "InformationAction";
$param1 | Add-Member -NotePropertyName "ParameterType" -NotePropertyValue "System.String";
$param1 | Add-Member -NotePropertyName "ParameterSets" -NotePropertyValue "{[__AllParameterSets, System.Management.Automation.ParameterSetMetadata]}";
$param1 | Add-Member -NotePropertyName "IsDynamic" -NotePropertyValue "False";
$param1 | Add-Member -NotePropertyName "Aliases" -NotePropertyValue "ia";
$param1 | Add-Member -NotePropertyName "Attributes" -NotePropertyValue $null;
$param1 | Add-Member -NotePropertyName "SwitchParameter" -NotePropertyValue "False";
$param2 = New-Object PsObject;
$param2 | Add-Member -NotePropertyName "WarningAction" -NotePropertyValue "IA1";
$param2 | Add-Member -NotePropertyName "Name" -NotePropertyValue "WarningAction";
$param2 | Add-Member -NotePropertyName "ParameterType" -NotePropertyValue "System.String";
$param2 | Add-Member -NotePropertyName "ParameterSets" -NotePropertyValue "{[__AllParameterSets, System.Management.Automation.ParameterSetMetadata]}";
$param2 | Add-Member -NotePropertyName "IsDynamic" -NotePropertyValue "False";
$param2 | Add-Member -NotePropertyName "Aliases" -NotePropertyValue "ia";
$param2 | Add-Member -NotePropertyName "Attributes" -NotePropertyValue $null;
$param2 | Add-Member -NotePropertyName "SwitchParameter" -NotePropertyValue "False";
$param3 = New-Object PsObject;
$param3 | Add-Member -NotePropertyName "ErrorAction" -NotePropertyValue "IA1";
$param3 | Add-Member -NotePropertyName "Name" -NotePropertyValue "ErrorAction";
$param3 | Add-Member -NotePropertyName "ParameterType" -NotePropertyValue "System.String";
$param3 | Add-Member -NotePropertyName "ParameterSets" -NotePropertyValue "{[__AllParameterSets, System.Management.Automation.ParameterSetMetadata]}";
$param3 | Add-Member -NotePropertyName "IsDynamic" -NotePropertyValue "False";
$param3 | Add-Member -NotePropertyName "Aliases" -NotePropertyValue "ia";
$param3 | Add-Member -NotePropertyName "Attributes" -NotePropertyValue $null;
$param3 | Add-Member -NotePropertyName "SwitchParameter" -NotePropertyValue "False";
$psObjectTemp = New-Object PsObject;
$psObjectTemp | Add-Member -NotePropertyName $param1.Name -NotePropertyValue $param1;
$psObjectTemp | Add-Member -NotePropertyName $param2.Name -NotePropertyValue $param2;
$psObjectTemp | Add-Member -NotePropertyName $param3.Name -NotePropertyValue $param3;
$function1.Params = $psObjectTemp
#EndRegion / Step 1 (create object)
#Region Step 2 (update object)
$param4 = New-Object PsObject;
$param4 | Add-Member -NotePropertyName "InformationVariable" -NotePropertyValue "IA1";
$param4 | Add-Member -NotePropertyName "Name" -NotePropertyValue "InformationVariable";
$param4 | Add-Member -NotePropertyName "ParameterType" -NotePropertyValue "System.String";
$param4 | Add-Member -NotePropertyName "ParameterSets" -NotePropertyValue "{[__AllParameterSets, System.Management.Automation.ParameterSetMetadata]}";
$param4 | Add-Member -NotePropertyName "IsDynamic" -NotePropertyValue "False";
$param4 | Add-Member -NotePropertyName "Aliases" -NotePropertyValue "ia";
$param4 | Add-Member -NotePropertyName "Attributes" -NotePropertyValue $null;
$param4 | Add-Member -NotePropertyName "SwitchParameter" -NotePropertyValue "False";
$param5 = New-Object PsObject;
$param5 | Add-Member -NotePropertyName "WarningVariable" -NotePropertyValue "IA1";
$param5 | Add-Member -NotePropertyName "Name" -NotePropertyValue "WarningVariable";
$param5 | Add-Member -NotePropertyName "ParameterType" -NotePropertyValue "System.String";
$param5 | Add-Member -NotePropertyName "ParameterSets" -NotePropertyValue "{[__AllParameterSets, System.Management.Automation.ParameterSetMetadata]}";
$param5 | Add-Member -NotePropertyName "IsDynamic" -NotePropertyValue "False";
$param5 | Add-Member -NotePropertyName "Aliases" -NotePropertyValue "ia";
$param5 | Add-Member -NotePropertyName "Attributes" -NotePropertyValue $null;
$param5 | Add-Member -NotePropertyName "SwitchParameter" -NotePropertyValue "False";
$param6 = New-Object PsObject;
$param6 | Add-Member -NotePropertyName "ErrorVariable" -NotePropertyValue "IA1";
$param6 | Add-Member -NotePropertyName "Name" -NotePropertyValue "ErrorVariable";
$param6 | Add-Member -NotePropertyName "ParameterType" -NotePropertyValue "System.String";
$param6 | Add-Member -NotePropertyName "ParameterSets" -NotePropertyValue "{[__AllParameterSets, System.Management.Automation.ParameterSetMetadata]}";
$param6 | Add-Member -NotePropertyName "IsDynamic" -NotePropertyValue "False";
$param6 | Add-Member -NotePropertyName "Aliases" -NotePropertyValue "ia";
$param6 | Add-Member -NotePropertyName "Attributes" -NotePropertyValue $null;
$param6 | Add-Member -NotePropertyName "SwitchParameter" -NotePropertyValue "False";
$psObjectTemp = New-Object PsObject;
$psObjectTemp = $function1.Params;
$psObjectTemp | Add-Member -NotePropertyName $param4.Name -NotePropertyValue $param4;
$psObjectTemp | Add-Member -NotePropertyName $param5.Name -NotePropertyValue $param5;
$psObjectTemp | Add-Member -NotePropertyName $param6.Name -NotePropertyValue $param6;
$function1.Params = $psObjectTemp;
#EndRegion / Step 2 (update object)

使用接受的答案后,我很高興看到這個

uj5u.com熱心網友回復:
另一種使用“選擇物件”的簡單方法
實施更快,更清潔IMO。
$Row = "" | Select Col1,Col2,Col3,Col4
$Row2 = "" | Select Col5,Col6,Col7,Col8
$Row2.Col6 = "Test"
$Row.Col1 = "Data1"
$Row.Col2 = 50
$Row.Col3 = $Row2
$Row.Col4 = $Row2.Col6
Col1 Col2 Col3 Col4
---- ---- ---- ----
Data1 50 @{Col5=; Col6=Test; Col7=; Col8=} Test
如果您想將列(屬性)添加到物件,您可以執行以下操作:
$Row = $Row | Select *,Col10
uj5u.com熱心網友回復:
[PSCustomObject]您可以使用文字大大簡化代碼Add-Member -NotePropertyMembers并將存盤在 a 中的多個屬性添加hashtable到現有物件。臨時變數$psObjectTemp也不是必需的。
#Region Step 1 (create object)
$function1 = [PSCustomObject]@{
Name = "Test1"
Params = [PSCustomObject]@{
InformationAction = [PSCustomObject]@{
InformationAction = "IA1"
Name = "InformationAction"
ParameterType = "System.String"
ParameterSets = "{[__AllParameterSets, System.Management.Automation.ParameterSetMetadata]}"
IsDynamic = "False"
Aliases = "ia"
Attributes = $null
SwitchParameter = "False"
}
WarningAction = [PSCustomObject]@{
<# TODO #>
}
ErrorAction = [PSCustomObject]@{
<# TODO #>
}
}
}
#EndRegion / Step 1 (create object)
#Region Step 2 (update object)
$function1.Params | Add-Member -NotePropertyMembers @{
InformationVariable = [PSCustomObject]@{
InformationVariable = "IA1"
Name = "InformationVariable"
ParameterType = "System.String"
ParameterSets = "{[__AllParameterSets, System.Management.Automation.ParameterSetMetadata]}"
IsDynamic = "False"
Aliases = "ia"
Attributes = $null
SwitchParameter = "False"
}
WarningVariable = [PSCustomObject]@{
<# TODO #>
}
ErrorVariable = [PSCustomObject]@{
<# TODO #>
}
}
#EndRegion / Step 2 (update object)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/512793.html
標籤:电源外壳目的对象添加成员
