Powershell输出格式

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

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

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

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

我假设您正在使用PowerShell 2.0。

如果您的模块名为MyModule ,则可以在其旁边创建一个MyModule.Format.ps1xml文件,以描述Format-ListFormat-Table等默认显示的属性。请参阅Get-Help about_Format.ps1xml和格式文件概述更多信息。

要将格式文件链接到模块,您需要创建模块清单并定义FormatsToProcess项。 New-ModuleManifest cmdlet可以帮助您开始使用它。