我在PowerShell 2.0中编写了我的第一个自定义CMDLet。我遇到了一个问题,我的cmdlet中没有使用自定义格式temaplate xml。 这是我的格式文件:
<Configuration>
<ViewDefinitions>
<View>
<Name>abc</Name>
<ViewSelectedBy>
<TypeName>ExtractServicesCmd.ServiceInfo</TypeName>
</ViewSelectedBy>
<TableControl>
<TableHeaders>
<TableColumnHeader>
<Label>ServiceName</Label>
<Width>12</Width>
<Alignment>right</Alignment>
</TableColumnHeader>
</TableHeaders>
<TableRowEntries>
<TableRowEntry>
<TableColumnItems>
<TableColumnItem>
<PropertyName>ServiceName</PropertyName>
</TableColumnItem>
</TableColumnItems>
</TableRowEntry>
</TableRowEntries>
</TableControl>
</View>
</ViewDefinitions>
</Configuration>
一切顺利,格式化成功注册(我使用 Get-FormatData 命令检查)并使用正确的类型。但是在执行我的命令行开关时,它仍然使用默认格式。我甚至试图通过管道“| Format-Table -View abc”强制使用我的格式化程序,但它说 - 找不到名称为abc的视图!到底是怎么回事?我尝试了 Get-FormatData 并分析了条目 - 我的ViewDefinition以适当的视图名称存在!
感谢阅读。
答案 0 :(得分:0)
$ x.GetType()。FullName是什么$ x是你输入的实例返回? (即,这听起来像PSH无法匹配类型名称。)
请注意,类型名称将与要格式化的对象的确切类型匹配,或是对象的基本类型。