Powershell输出格式化
问题描述:
我正在开发一个使用C#的Powershell Cmdlet,我想知道是否有方法来控制我在Cmdlet本身写入Powershell的对象的格式。基本上,我拥有太多属性的对象在屏幕上很容易显示,我的Cmdlet将它们发送到Powershell WriteObject()
Powershell输出格式化
我希望我的cmdlet用户能够运行它们,并且在Powershell控制台中,读取使用命令提示符返回的数据。不幸的是,Powershell试图适应列的属性数量意味着大多数被截断,而当我添加更多时,它会给每个属性更糟的行。
我已经看到了允许用户正确格式化数据的东西,但没有任何东西允许开发人员设置默认值。基本上我想要的是类似于属性的东西,我可以将它应用到通过Powershell传递给Powershell的对象的每个属性,该属性告诉Powershell是否显示每个属性(假设用户没有设置其他格式选项)。
(我试着让他们的公共领域,而不是性质太,和PowerShell还显示它们)
答
我假设你正在使用的PowerShell 2.0。
如果你的模块称为MyModule
,您可以创建一个MyModule.Format.ps1xml
文件沿着它描述属性默认显示的内容通过Format-List
,Format-Table
等见Get-Help about_Format.ps1xml
和Formatting File Overview以获取更多信息。
要将格式文件链接到您的模块,您需要创建一个module manifest并定义FormatsToProcess
项目。 New-ModuleManifest
cmdlet可以让你开始这个。
完美,谢谢! – Neil 2012-03-17 19:02:47