Форматирование вывода командлета Powershell - PullRequest
0 голосов
/ 29 сентября 2011

Я пишу свой первый собственный CMDLet в powershell 2.0. Я обнаружил проблему с тем, что пользовательский формат 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 голосов
/ 30 сентября 2011

Что возвращает $ x.GetType (). FullName, где $ x - это экземпляр вашего типа? (Т.е. это звучит так, будто PSH не соответствует имени типа.)

Обратите внимание, что имя типа будет соответствовать точному типу форматируемого объекта, или базовый тип объекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...