我有我的模塊中的小命令從數據庫表返回通用的DataRows的集合,他的名字與-Name
參數DataRow的動態特性
# this returns a collection of datarows from table "Orders"
Get-Table -Name Orders
我每次調用上不同的表cmdlet中指定我輸出到Format-Table
,這使得它更具可讀性。
是否有任何方法可以將屬性格式化爲一個表格,而無需每次都將管道傳送到Format-Table
?告訴PowerShell始終使用表格佈局顯示DataRow類型的東西?
我已經與模塊有一個ps1xml
文件一起,包含一些格式規則是這樣的:
<View>
<Name>MyType</Name>
<ViewSelectedBy>
<TypeName>MyNamespace.MyType</TypeName>
</ViewSelectedBy>
<TableControl>
<TableRowEntries>
<TableRowEntry>
<TableColumnItems>
<TableColumnItem>
<PropertyName>Property1</PropertyName>
</TableColumnItem>
<TableColumnItem>
<PropertyName>Property2</PropertyName>
</TableColumnItem>
[...]
</TableColumnItems>
</TableRowEntry>
</TableRowEntries>
</TableControl>
</View>
我想使用類似的規則System.Data.DataRow
型,但性質每次有不同的名稱,它似乎我無法從上面的XML模板中刪除<TableRowEntries>
標記。
有什麼想法?
我要麼用'-FormatTable'開關修改cmdlet,要麼不能修改來源,爲它寫'Get-FormattedTable'的包裝器什麼的。 – TToni
@Toni我可以編輯該cmdlet,但如何使它將行寫入表中?我現在用'WriteObject(MyDataTable.Rows,true)'返回行;' –
我假設了一個腳本cmdlet,在這裏很容易。我不知道如何用C#cmdlet來做到這一點,或者甚至可能。所以在你的情況下,我會用一個PowerShell腳本包裝器(即一個新的腳本函數,它只是將參數路由到原始cmdlet並通過'Format-Table'輸出) – TToni