Powershell自定义cmdlet格式输出

时间:2011-09-29 12:56:25

标签: powershell cmdlets cmdlet

我在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以适当的视图名称存在!

感谢阅读。

1 个答案:

答案 0 :(得分:0)

$ x.GetType()。FullName是什么$ x是你输入的实例返回? (即,这听起来像PSH无法匹配类型名称。)

请注意,类型名称将与要格式化的对象的确切类型匹配,是对象的基本类型。