此帖子是对该主题here的补充
基本上,我有2个脚本
script1具有以下内容:
$exportObject = New-Object System.Collections.ArrayList
$exportObject | Select-Object
在script2中,我正在调用script1做某事并将输出传递到-ov
& "script1.ps1" -ov $outputValue
$outputValue
这就是我得到的
我想将$outValue
转换为pscustomobject
动态 ,因为Theo的答案(在上面的链接中)需要pscustomobject,而我的{{ 1}}是一个数组列表/选择对象...
基本上,pscustomobject将保存这样的值,但这不是动态的,而是对键/值进行硬编码。
$outValue
我正在寻找这样的东西:
$outValue = @(
[PSCustomObject]@{
'Server' = 'Server1.com'
'Cube' = 'Cube1'
'Connection Details' = 'Connection changed!'
}
)
答案 0 :(得分:1)
这将非常不稳定,但可以在我测试过的多台计算机上工作。
这应该可以帮助您创建具有PSCustomObject
个成员的“动态”数组。
$array = @()
Foreach($Object in $exportObject ) {
$i = -1
$Goal = -($Object | gm | Where-Object {$_.MemberType -like "noteproperty"}).count
$temp = New-Object pscustomobject
Do {
$temp | Add-Member -MemberType NoteProperty -Name (($Object | gm)[$($i)].Name) -Value ($Object."$(($Object | gm)[$($i)].Name)")
$i--
}While($i -ge $Goal)
$array += $temp
}
这显然不是最佳实践,但根据我的经验,大多数事情是如何快速又肮脏的完成的。
然后在Theo提供的其他功能$array
中使用ConvertTo-HTMLTable $array