我有一个PowerShell对象,如下所示:
$MyObject = New-Object PSObject
$MyObject | Add-Member -Type NoteProperty -Name Name -Value $Name
$MyObject | Add-Member -Type NoteProperty -Name Json -Value $Json
如果我愿意的话:
$MyObject
我会看到:
Name Json ---- -------------------------- Name {@json-powershell format}
我希望在使用$MyObject
时,默认视图会显示($MyObject).Json
。
我无法找到一种方法。
答案 0 :(得分:1)
您可以覆盖ToString()方法:
$MyObject | Add-Member -type ScriptMethod -Name ToString -Value
{$this.Json} -PassThru -Force
如果您在字符串中使用变量,则会显示Json。
"$MyObject"
那是你在寻找什么?您希望输出在哪里?控制台?调试流?
答案 1 :(得分:0)
我认为您希望获得的内容在本文中有所描述:http://learn-powershell.net/2013/08/03/quick-hits-set-the-default-property-display-in-powershell-on-custom-objects/
$defaultDisplaySet = 'Json'
$defaultDisplayPropertySet = New-Object System.Management.Automation.PSPropertySet(‘DefaultDisplayPropertySet’,[string[]]$defaultDisplaySet)
$PSStandardMembers = [System.Management.Automation.PSMemberInfo[]]@($defaultDisplayPropertySet)
$object.PSObject.TypeNames.Insert(0,'User.Information')
$object | Add-Member MemberSet PSStandardMembers $PSStandardMembers
$Object