Извлечение данных из CSV-файлов с использованием сортировки и группирования PowerShell - PullRequest
0 голосов
/ 24 октября 2019

Моя цель - выводить каждый объект группы по отдельности, но в порядке Start_Order. Из Count вы можете видеть, что под одним и тем же именем_сервера есть несколько объектов.

Мой код сейчас упаковывает все вместе.

Вывод должен быть:

Server_Name             Service_Name
USOHCLIENT901             DISP01   #organized by Start_Order, Start_Order =1
                          DISP03   #Start_Order =2
                          DISP05   #Start_Order =3 
$Sourcefile = "C:\Users\StartF.csv"

$StartProperties  = (Import-Csv $Sourcefile)  | select Ava_Zone,Environment,Server_Name,
                                                Purpose,Service_Name, Start_Order, Start_Flag, 
                                                Start_Wait
# $StartProperties

$StartProperties | Group-Object -Property Server_Name | Sort-Object -Property {$_Start_Order}

Count Name                      Group                                          
----- ----                      -----                                          
    1 USOHCLIENT901             {@{Ava_Zone=us-east-2a; Environment=DEV; Ser...
   13 DEFRCLIENT801             {@{Ava_Zone=de-central-1a; Environment=TEST;...
   12 APSGCOGAPP803             {@{Ava_Zone=ap-southeast-1a; Environment=TES...
   12 APSGCOGAPP802             {@{Ava_Zone=ap-southeast-1b; Environment=TES...
   12 APSGCOGAPP801             {@{Ava_Zone=ap-southeast-1a; Environment=TES...
    1 APSGCLIENT801             {@{Ava_Zone=ap-southeast-1a; Environment=TES...
   12 USOHCOGAPP803             {@{Ava_Zone=us-east-2a; Environment=TEST; Se...
   12 USOHCOGAPP802             {@{Ava_Zone=us-east-2a; Environment=TEST; Se...
   12 USOHCOGAPP801             {@{Ava_Zone=us-east-2a; Environment=TEST; Se...
    1 USOHCLIENT801             {@{Ava_Zone=us-east-2a; Environment=TEST; Se...
    1                           {@{Ava_Zone=--; Environment=; Server_Name=; ...
   12 DEFRCLIENT903             {@{Ava_Zone=de-central-1a; Environment=DEV; ...
   12 DEFRCOGAPP902             {@{Ava_Zone=de-central-1b; Environment=DEV; ...
   11 DEFRCOGAPP901             {@{Ava_Zone=de-central-1a; Environment=DEV; ...
    2 DEFRCLIENT901             {@{Ava_Zone=de-central-1a; Environment=DEV; ...
   12 APSGCOGAPP903             {@{Ava_Zone=ap-southeast-1a; Environment=DEV...
   12 APSGCOGAPP902             {@{Ava_Zone=ap-southeast-1b; Environment=DEV...
   12 APSGCOGAPP901             {@{Ava_Zone=ap-southeast-1a; Environment=DEV...
    1 APSGCLIENT901             {@{Ava_Zone=ap-southeast-1a; Environment=DEV...
   12 USOHCOGAPP903             {@{Ava_Zone=us-east-2a; Environment=DEV; Ser...
   12 USOHCOGAPP902             {@{Ava_Zone=us-east-2a; Environment=DEV; Ser...
   12 USOHCOGAPP901             {@{Ava_Zone=us-east-2a; Environment=DEV; Ser...
   12 DEFRCOGAPP802             {@{Ava_Zone=de-central-1b; Environment=TEST;...
   12 DEFRCOGAPP803             {@{Ava_Zone=de-central-1a; Environment=TEST;...

Выход PowerShell

1 Ответ

0 голосов
/ 24 октября 2019

Посмотрите на код ниже. Он будет делать то, что вы ищете, но для всех запущенных процессов. После Group-Object вы можете напрямую выбрать необходимые свойства с помощью Select-Object и пользовательского свойства @{Name = 'Id'; Expression = {($_.Group.Id | Sort-Object) -join " r n"}}, которое будет собирать данные из группы Group-Object и сортировать их.

$Processes = Get-Process
$Processes | Group-Object -Property 'ProcessName' | Select-Object -Property 'Name', @{Name = 'Id'; Expression = {($_.Group.Id | Sort-Object) -join "`r`n"}} | Format-List
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...