首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为New-Object推荐首选格式?

如何为New-Object推荐首选格式?
EN

Stack Overflow用户
提问于 2013-07-12 07:50:41
回答 1查看 387关注 0票数 2

我在PowerShell中创建新对象,如下所示:

代码语言:javascript
复制
# create new object
$res = New-Object PSObject

# assign properties
$res | Add-Member Noteproperty -Name Passed -Value $Passed
$res | Add-Member Noteproperty -Name Duration -Value $Duration
$res | Add-Member Noteproperty -Name Name -Value $TestCase.Name
$res | Add-Member Noteproperty -Name Message -Value $Message

# return result
$res

当我调用此代码时,$res结果项以表格格式显示。我也可以通过添加| Format-Table来强制使用格式。

是否可以构造新对象,以便在显示时强制使用特定的默认格式?(例如:我可以通过在对象上添加一些属性或元数据来强制Format-TableFormat-List吗?)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-13 00:16:06

我所知道的获取一个类型的标准格式的唯一方法是创建并加载一个格式化文件(参见about_Format.ps1xml)。格式化文件根据对象的类型名称“决定”使用哪种格式。因此,在创建自定义对象时,请确保还为其指定了自定义类型名称,以便您可以为其编写自定义视图:

代码语言:javascript
复制
$res = New-Object PSObject
$res.PSTypeNames.Insert(0, 'Result')

然后,在格式化文件中,使用Result作为类型名。使用一个比Results更好的名字可能是个好主意。

格式化文件必须先加载,然后才能使用。如果格式化文件是模块的一部分,这很容易,如果它是一个松散的格式化文件,您的脚本将单独加载,则需要做更多的工作。

你也可以编写自己的格式化函数,在内部使用Format-Table和/或Format-List,以你想要的方式显示对象,例如

代码语言:javascript
复制
function Format-TestCaseResult
{
    param(
        [Parameter(Mandatory=$true,ValueFromPipeline=$true)]
        $InputObject
    )
    process
    {
        $InputObject | Format-Table -AutoSize
    }
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17605438

复制
相关文章

相似问题

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