Powershell 自定义 cmdlet 格式化输出
我正在 powershell 2.0 中编写我的第一个自定义 CMDLet。我遇到了一个问题,即我的 cmdlet 中未使用自定义格式模板 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 存在并具有正确的视图名称!
感谢您的阅读。
I am writing my first custom CMDLet in powershell 2.0. I have encoutered a problem with custom formatting temaplate xml being not used in my cmdlet.
Here is my formatting file:
<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>
Everything goes fine, Format is successfully registering (I checked it using Get-FormatData command) with proper type. But when executing my commandlet it still uses default formatting. I even tried to force using my formatter by piping "| Format-Table -View abc" but it says - cannot find view with name abc! What is going on? I tried Get-FormatData and analyzed entries - my ViewDefinition is present there with proper view name!
Thanks for reading.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
$x.GetType().FullName(其中 $x 是您键入的实例)返回什么? (即,这听起来好像 PSH 无法匹配类型名称。)
请注意,类型名称将与正在格式化的对象的确切类型(或)匹配对象的基本类型。
What does $x.GetType().FullName where $x is an instance of you type return? (Ie. this sounds like PSH is failing to match the type name.)
Note the type name will match the exact type of the object being formatted, or a base type of the object.