ich ein Cmdlet in meinem Modul haben, das eine Sammlung von generischen DataRows aus einer Datenbanktabelle zurückgibt, deren Name mit -Name
ParameterDataRow mit dynamischen Eigenschaften
# this returns a collection of datarows from table "Orders"
Get-Table -Name Orders
Jedes Mal, wenn ich rufen Sie die Cmdlets auf verschiedenen Tabellen angegeben I Pipe die Ausgabe zu Format-Table
, die es lesbarer macht.
Gibt es eine Möglichkeit, die Eigenschaften als Tabelle formatiert zu halten, ohne jedes Mal eine Pipeline an Format-Table
? Etwas, das PowerShell anweist, das Tabellenlayout immer zum Anzeigen des DataRow-Typs zu verwenden?
Ich habe bereits eine ps1xml
Datei zusammen mit dem Modul, eine Formatregel wie folgt enthalten:
<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>
I für System.Data.DataRow
Typen eine ähnliche Regel zu verwenden, gedacht, aber die Eigenschaften haben unterschiedliche Namen jedes Mal, und es scheint, dass ich das <TableRowEntries>
-Tag aus der obigen XML-Vorlage nicht entfernen kann.
Irgendeine Idee?
ich entweder das Cmdlet mit einem '-FormatTable' Schalter ändern würde, oder wenn Sie nicht ändern können die Quelle, schreibe einen Wrapper dafür 'Get-FormattedTable' oder so. – TToni
@TToni Ich kann das Cmdlet bearbeiten, aber wie schreibt man die Zeilen als Tabelle? Ich gebe derzeit die Zeilen mit 'WriteObject (MyDataTable.Rows, true);' –
Ich nahm ein Skript-Cmdlet, wo dies leicht wäre. Ich weiß nicht, wie man das mit einem C# Cmdlet macht oder ob es überhaupt möglich ist. In Ihrem Fall würde ich also einen PowerShell-Skript-Wrapper verwenden (dh eine neue Skriptfunktion, die nur die Parameter an das ursprüngliche Cmdlet und die Ausgabe über 'Format-Table' weiterleitet). – TToni