Powershell输出格式

时间:2012-03-17 18:16:11

标签: c# powershell

我正在使用C#开发一个Powershell Cmdlet,我想知道是否有一种方法可以控制我在Cmdlet本身写入Powershell的对象的格式。基本上,我有太多属性的对象可以在屏幕上轻松显示,而我的Cmdlet正在使用WriteObject()

将这些对象发送到Powershell

我希望我的cmdlet用户能够运行它们,并且在Powershell控制台中,读取返回的数据,就像使用命令提示符一样。不幸的是,Powershell试图在列中填充的属性数量意味着大多数都被截断了,当我添加更多内容时,它会为每个属性提供自己的行,这更糟糕。

我见过允许用户正确格式化数据的内容,但没有任何内容允许开发人员设置默认值。基本上我想要的是类似于属性的东西我可以应用于被泵送到Powershell的对象的每个属性,它告诉Powershell是否显示每个属性(假设用户没有设置其他格式化选项)。

(我试过把它们变成公共字段而不是属性,而Powershell仍然会显示它们)

1 个答案:

答案 0 :(得分:10)

我假设您正在使用PowerShell 2.0。

如果您的模块被调用MyModule,您可以在其旁边创建一个MyModule.Format.ps1xml文件,以描述Format-ListFormat-Table等默认显示的属性。 Get-Help about_Format.ps1xmlFormatting File Overview了解详情。

要将格式文件链接到模块,您需要创建module manifest并定义FormatsToProcess项。 New-ModuleManifest cmdlet可以让您开始使用此功能。