2012-03-17 196 views
6

我正在開發一個使用C#的Powershell Cmdlet,我想知道是否有方法來控制我在Cmdlet本身寫入Powershell的對象的格式。基本上,我擁有太多屬性的對象在屏幕上很容易顯示,我的Cmdlet將它們發送到Powershell WriteObject()Powershell輸出格式化

我希望我的cmdlet用戶能夠運行它們,並且在Powershell控制檯中,讀取使用命令提示符返回的數據。不幸的是,Powershell試圖適應列的屬性數量意味着大多數被截斷,而當我添加更多時,它會給每個屬性更糟的行。

我已經看到了允許用戶正確格式化數據的東西,但沒有任何東西允許開發人員設置默認值。基本上我想要的是類似於屬性的東西,我可以將它應用到通過Powershell傳遞給Powershell的對象的每個屬性,該屬性告訴Powershell是否顯示每個屬性(假設用戶沒有設置其他格式選項)。

(我試着讓他們的公共領域,而不是性質太,和PowerShell還顯示它們)

回答

9

我假設你正在使用的PowerShell 2.0。

如果你的模塊稱爲MyModule,您可以創建一個MyModule.Format.ps1xml文件沿着它描述屬性默認顯示的內容通過Format-ListFormat-Table等見Get-Help about_Format.ps1xmlFormatting File Overview以獲取更多信息。

要將格式文件鏈接到您的模塊,您需要創建一個module manifest並定義FormatsToProcess項目。 New-ModuleManifest cmdlet可以讓你開始這個。

+0

完美,謝謝! – Neil 2012-03-17 19:02:47