我正在使用C#开发一个Power
shell Cmdlet,我想知道是否有一种方法可以控制我在Cmdlet本身写入Powershell的对象的格式.基本上,我有太多属性的对象可以在屏幕上轻松显示,我的Cmdlet使用WriteObject()将它们发送到Powershell
我希望我的cmdlet用户能够运行它们,并在Powershell控制台中读取返回的数据,就像使用命令提示符一样.不幸的是,Powershell试图在列中填充的属性数量意味着大多数都被截断,当我添加更多时,它会为每个属性提供自己的行,这更糟糕.
我已经看到了允许用户正确格式化数据的东西,但没有任何东西允许开发人员设置默认值.基本上我想要的是类似于属性我可以应用于被泵送到Powershell的对象的每个属性,它告诉Powershell是否显示每个属性(假设用户没有设置其他格式化选项).
解决方法
我假设你正在使用Power
Shell 2.0.
如果您的模块名为MyModule,则可以在其旁边创建一个MyModule.Format.ps1xml文件,以描述Format-List,Format-Table等默认显示的属性.有关详细信息,请参阅Get-Help about_Format.ps1xml
和Formatting File Overview.
要将格式文件链接到模块,可以创建module manifest并定义FormatsToProcess项. New-ModuleManifest
cmdlet可以让你开始这个.