tot*_*cat 8 powershell powershell-2.0
以下是来自Kirk Munro的博客文章,其中解释了脚本如何在其输出对象上设置DefaultDisplayPropertySet:
Essential PowerShell:定义自定义对象的默认属性
他的技术和示例代码似乎在PowerShell v2中不起作用.(注意,我安装了PowerTab和PSCX - 也许那些可能会干扰.)
任何人都知道如何让这个在PowerShell v2上运行?
$myObject = New-Object PSObject
$myObject | Add-Member NoteProperty Name 'My Object'
$myObject | Add-Member NoteProperty Property1 1
$myObject | Add-Member NoteProperty Property2 2
$myObject | Add-Member NoteProperty Property3 3
$myObject | Add-Member NoteProperty Property4 4
$myObject | Add-Member NoteProperty Property5 5
$myObject
## Output:
# Name : My Object
# Property1 : 1
# Property2 : 2
# Property3 : 3
# Property4 : 4
# Property5 : 5
$defaultProperties = @('Name','Property2','Property4')
$defaultDisplayPropertySet = New-Object System.Management.Automation.PSPropertySet('DefaultDisplayPropertySet',[string[]]$defaultProperties)
$PSStandardMembers = [System.Management.Automation.PSMemberInfo[]]@($defaultDisplayPropertySet)
$myObject | Add-Member MemberSet PSStandardMembers $PSStandardMembers
$myObject
## Output:
# Name : My Object
# Property1 : 1
# Property2 : 2
# Property3 : 3
# Property4 : 4
# Property5 : 5
Run Code Online (Sandbox Code Playgroud)
添加DefaultDisplayPropertySet后输出应该不相同(即,它应该只有Name,Property2和Property4).
你能举例说明你的非工作代码吗?这应该在v2中完美运行,如果没有,你发现了一个bug.
更新:
(删除了关于引用的评论)
我已经与powershell团队确认这确实是一个回归(bug).
您可以在此投票表明问题对您的重要性:
https://connect.microsoft.com/PowerShell/feedback/ViewFeedback.aspx?FeedbackID=487938
谢谢,
-Oisin(powershell MVP)
| 归档时间: |
|
| 查看次数: |
2791 次 |
| 最近记录: |