首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Out-GridView返回全部对象,同时仅显示选定的属性

Out-GridView返回全部对象,同时仅显示选定的属性
EN

Stack Overflow用户
提问于 2019-02-18 13:06:57
回答 2查看 904关注 0票数 1

我有一个要处理的哈希表数组,需要用户选择一个或多个哈希表进行进一步处理。我可以让GridView正确地显示它们,但是我需要能够只显示3或4个属性,这将允许最终用户挑选正确的条目,并从显示中隐藏其余的条目。

返回的对象应该是整个哈希表。

代码语言:javascript
复制
$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,则返回的对象具有以下属性:

代码语言:javascript
复制
Name Type
---- ----
Test UAT

然而,我希望有整个对象与URL等

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-19 05:44:03

所以我想我找到了一个可能的解决方案,但是它不是很优雅,我更喜欢“一行”。

代码语言:javascript
复制
$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 }
$selectedSSRS

Where-Object子句需要在实际代码中进行调整,因为名称可能不够唯一,无法确保只将正确的条目添加到选定列表中

票数 1
EN

Stack Overflow用户

发布于 2019-02-18 15:50:23

将脚本的最后两行更改为以下三行:

代码语言:javascript
复制
$selectedSSRS = $RptServers | ForEach-Object { [PSCustomObject]$_ }    
$selectedSSRS | Select-Object -Property 'Name','Type' | Out-GridView -Title "Select Report Server(s)" 
$selectedSSRS

选择对象过滤器仅在此处的网格视图上有效,而$selectedSSRS具有所有属性

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54740764

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档