表格式,列顺序

时间:2015-12-02 14:38:43

标签: powershell formatting

我需要决定我的表的列的顺序。我的实际命令就是那个:

$tab | Sort-Object "Pourcentage" -Descending |
  Format-Table -AutoSize |
  Out-String -Width 4000 |
  Out-File -Append O:\sigdci\public\parcoursArborescence\bilanAnalyse.txt

它给了我那个命令:

Derniere modification   Categorie recherchee   Dernier acces   Dossier   Pourcentage

但是我需要“档案”才能成为第一,然后“分类recherchee”和“Pourcentage”将是第2和第3。我该怎么办?

1 个答案:

答案 0 :(得分:2)

按所需顺序指定列标题:

$tab | Sort-Object "Pourcentage" -Descending | 
  Format-Table 'Dossier', 'Categorie recherchee', 'Pourcentage',
               'Derniere modification', 'Dernier acces' -AutoSize |
  Out-String -Width 4000 |
  Out-File -Append 'O:\sigdci\public\parcoursArborescence\bilanAnalyse.txt'

如果需要动态确定列名,可以这样做:

$headers = $tab[0].PSObject.Properties |
           Where-Object MemberType -eq NoteProperty |
           Select-Object -Expand Name

但是,您必须以某种方式将该列表带入您想要的订单。也许你可以这样做:

$allHeaders    = 'Dossier', 'Categorie recherchee', 'Pourcentage',
                 'Derniere modification', 'Dernier acces'
$actualHeaders = $tab[0].PSObject.Properties |
                 Where-Object { MemberType -eq NoteProperty } |
                 Select-Object -Expand Name
$headers = $allHeaders | Where-Object { $actualHeaders -contains $_ }

$allHeaders是一个包含正确顺序的所有标头的数组。然后,您从该列表中删除$actualHeaders中不存在的所有项目,同时保留剩余标题的顺序。