我在PowerShell中创建新对象,如下所示:
# 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-Table或Format-List吗?)
发布于 2013-07-13 00:16:06
我所知道的获取一个类型的标准格式的唯一方法是创建并加载一个格式化文件(参见about_Format.ps1xml)。格式化文件根据对象的类型名称“决定”使用哪种格式。因此,在创建自定义对象时,请确保还为其指定了自定义类型名称,以便您可以为其编写自定义视图:
$res = New-Object PSObject
$res.PSTypeNames.Insert(0, 'Result')然后,在格式化文件中,使用Result作为类型名。使用一个比Results更好的名字可能是个好主意。
格式化文件必须先加载,然后才能使用。如果格式化文件是模块的一部分,这很容易,如果它是一个松散的格式化文件,您的脚本将单独加载,则需要做更多的工作。
你也可以编写自己的格式化函数,在内部使用Format-Table和/或Format-List,以你想要的方式显示对象,例如
function Format-TestCaseResult
{
param(
[Parameter(Mandatory=$true,ValueFromPipeline=$true)]
$InputObject
)
process
{
$InputObject | Format-Table -AutoSize
}
}https://stackoverflow.com/questions/17605438
复制相似问题