Я пишу скрипты отчетности в Powershell и сбор до сводной таблицы элементов, как пустой объект с дополнительными свойствами добавил один за другим:Как получить свойства объекта powershell в том же порядке, что и в списке форматов?
$cmClusters = @()
foreach ($Cluster in Clusters) {
$cmCluster = New-Object System.Object
$cmCluster | Add-Member -type NoteProperty -Name VC -Value $strVC
$cmCluster | Add-Member -type NoteProperty -Name Name -Value $Cluster.name
# etc...
$cmClusters += $cmCluster;
}
Если я просто свалка $ cmClusters в в конце этого я получаю вывод списка форматов со свойствами в том порядке, в котором я их добавил.
Однако я надеялся написать общий «дамп этой коллекции объектов на вкладку excel» для создания моего отчета, в котором будет несколько похожих вкладок листа из разных списков объектов.
Это выглядит следующим образом:
function DumpToExcel($workbook, $tabTitle, $list)
{
$sheet = $workbook.worksheets.add()
$sheet.Name = $tabTitle
$col = 1
$row = 1
$fields = $list[0] | Get-Member -MemberType NoteProperty | Select-Object *
Foreach ($field in $fields) {
$sheet.cells.item($row,$col++) = $field.Name
}
$heading = $sheet.UsedRange
$heading.Font.Bold = $True
$row++
Foreach ($cmCluster in $list) {
$col=1
Foreach ($field in $fields) {
$sheet.cells.item($row,$col++) = $cmCluster.($field.Name)
}
$row++
}
$sheet.UsedRange.EntireColumn.AutoFit() | Out-Null
}
, который работает, но имена свойств теперь в алфавитном порядке.
Что я могу использовать, чтобы получить список объектов в том же порядке, что и Format-List?
Aha! Отлично. Благодарю вас. – AnotherHowie