Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Группировка в массиве

Ответить
Настройки темы
PowerShell - Группировка в массиве

Новый участник


Сообщения: 25
Благодарности: 0

Профиль | Отправить PM | Цитировать


Добрый день
Есть массив данных. В данный момент в массиве 26 элементов, для примера первый элемент

Скрытый текст

mid : a795ac98-b255-425f-8f2e-42ff419b283f
uid : dc531eb6-228c-423d-bf0d-b04e3a6e7332
templateName : appointment-5
log : {@{status=seen; when=2022-01-27T06:07:52.235Z}, @{status=delivered; when=2022-01-27T06:07:50.172Z}, @{status=query; when=2022-01-27T06:07:49.359Z}}
lastStatusUpdate : 2022-01-27T06:07:55.746Z
status : interact
code : 10
channel : viber
type : accepted



Удается сделать группировку например по полю channel
Код: Выделить весь код
$mass | group channel -NoElemen

Count Name                     
----- ----                     
   19 viber                    
    5 sms                      
    2 wab
Задача: сгруппировать по дате (из поля lastStatusUpdate), например по дню недели, числу, месяцу. Для этого при группировке по идеи нужно получить требуемый формат
Скрытый текст

$mass | group lastStatusUpdate -NoElement

Count Name
----- ----
1 2022-01-27T06:07:55.746Z
3 2022-01-27T06:11:44.262Z
12 2022-01-27T06:36:26.647Z
3 2022-01-27T13:37:37.487Z
5 2022-01-28T06:09:46.187Z
1 2022-01-28T11:54:37.702Z
1 2022-01-28T11:54:23.503Z


Например get-date ($mass.lastStatusUpdate[0]) -Format ddMMMM - даст 27января
Вопрос: как правильно использовать get-date в $mass | group чтобы получить результат

Count Name
----- ----
19 27января
7 28января

Отправлено: 16:12, 01-02-2022

 

Новый участник


Сообщения: 25
Благодарности: 0

Профиль | Отправить PM | Цитировать


upd
Так получилось. Подскажите пож. по синтаксису. { } почему нужно использовать. Правильно ли это в данном случаи? Или есть другой вариант решения задачи
Код: Выделить весь код
PS C:\WINDOWS\system32> $mass | group { Get-Date($_.lastStatusUpdate) -Format dd' 'MMMM } -NoElement 

Count Name                     
----- ----                     
   19 27 января                
    7 28 января

Отправлено: 16:34, 01-02-2022 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


да вариантов масса, надо понимать где и как расположен контент
Код: Выделить весь код
$file = 'Например путь к файлу, содержащему один элемент'

$hFile = [Ordered]@{}
Switch -Regex -File ($file) {
  Default {
    $Line = $_ -Split ':',2
    $hFile[$Line.TrimEnd()[0]] = $Line.TrimStart()[1]
  }
}
$hFile.lastStatusUpdate|Get-Date -f "dd MMMM"

Последний раз редактировалось alpap, 01-02-2022 в 20:38.


Отправлено: 20:33, 01-02-2022 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Группировка в массиве

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
PowerShell - Группировка чисел DrBuG47 Скриптовые языки администрирования Windows 8 24-05-2020 18:28
CMD/BAT - Группировка файлов r1sh Скриптовые языки администрирования Windows 5 09-02-2015 17:58
Интерфейс - Группировка окон grosmeba Microsoft Windows 7 2 23-06-2014 00:14
Разное - группировка окон fngidiotdonk Microsoft Windows 7 0 18-01-2011 22:25
C/C++ - В одномерном массиве tatarinbas Программирование и базы данных 1 16-12-2010 14:39




 
Переход