我需要决定我的表的列的顺序。我的实际命令就是那个:
$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。我该怎么办?
答案 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
中不存在的所有项目,同时保留剩余标题的顺序。