我有一个要处理的哈希表数组,需要用户选择一个或多个哈希表进行进一步处理。我可以让GridView正确地显示它们,但是我需要能够只显示3或4个属性,这将允许最终用户挑选正确的条目,并从显示中隐藏其余的条目。
返回的对象应该是整个哈希表。
$t = @{}
$t.Name = "Test"
$t.URL = "http://xxx.test"
$t.Type = "UAT"
$RptServers = ,$t
$p = @{}
$p.Name = "Prod-MEL"
$p.URL = "http://xxx.Prod"
$p.Type = "PROD"
$RptServers += $p
$selectedSSRS = $RptServers | ForEach-Object { [PSCustomObject]$_ | Select-Object -Property 'Name','Type' } | Out-GridView -Title "Select Report Server(s)" -PassThru
$selectedSSRS如果用户选择Test,则返回的对象具有以下属性:
Name Type
---- ----
Test UAT然而,我希望有整个对象与URL等
发布于 2019-02-19 05:44:03
所以我想我找到了一个可能的解决方案,但是它不是很优雅,我更喜欢“一行”。
$temp = $RptServers | ForEach-Object { $_ | Select-Object -Property 'Name','Type' } | Out-GridView -Title "Select Report Server(s)" -PassThru
$selectedSSRS = $RptServers | Where-Object { $_.Name -in $temp.Name }
$selectedSSRSWhere-Object子句需要在实际代码中进行调整,因为名称可能不够唯一,无法确保只将正确的条目添加到选定列表中
发布于 2019-02-18 15:50:23
将脚本的最后两行更改为以下三行:
$selectedSSRS = $RptServers | ForEach-Object { [PSCustomObject]$_ }
$selectedSSRS | Select-Object -Property 'Name','Type' | Out-GridView -Title "Select Report Server(s)"
$selectedSSRS选择对象过滤器仅在此处的网格视图上有效,而$selectedSSRS具有所有属性
https://stackoverflow.com/questions/54740764
复制相似问题