|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Powershell_поиск одинаковых значений массива |
|
|
PowerShell - [решено] Powershell_поиск одинаковых значений массива
|
Новый участник Сообщения: 25 |
Добрый день.
Через сервис рассылки отправляются текстовые уведомления о заказе. они доставляется/(не доставлены/просмотрены/...) в каналы: sms/viber/vk Имеется .txt файл, содержащий уникальные mid отправленного информационного сообщения. Для проверки статуса читаю файл, беру оттуда mid, отправляю в foreach и методом Invoke-RestMethod делаю запрос на получения статуса имеющихся mid Пример ответа сервера по каждой строке: PS C:\WINDOWS\system32> $a log : {@{_id=5e46429b2a955d000be61afa; status=query; when=2020-02-13T07:00:05.978Z}} mid : 17a4b6b5-0bb9-4557-916f-f0775839d474 lastStatusUpdate : 2020-02-13T07:03:14.499Z status : delivered code : 7 channel : sms type : primary code может принимать 5 значений, channel может принимать 3. Итого 15 разных вариантов Начал считать с цикле (проверка по 2-м условиям) но явно это не рационально для всех комбинаций Как вариант - вижу отправить $a.channel+ " " +$a.status в текстовый файл и там посчитать совпадения, но тоже как-то "костыльно" Как правильно подсчитать количество полученных ответов в комбинации code+channel, чтобы было примерно так: channel code count sms 7 2 sms 6 4 viber 7 10 ................. |
|
Отправлено: 12:38, 14-02-2020 |
fascinating rhythm Сообщения: 6626
|
Профиль | Отправить PM | Цитировать Цитата solonenko:
|
|
------- Отправлено: 12:55, 14-02-2020 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 25
|
Профиль | Отправить PM | Цитировать Цитата DJ Mogarych:
Код Название статуса Описание статуса 10 interact Взаимодействие пользователя с сообщением (нажата кнопка, отправлено ответное сообщение). Возможен только для акцептированных контактов. 9 seen Сообщение прочитано 7 delivered Сообщение доставлено 6 undelivered Сообщение не удалось доставить 5 expired Время ожидания доставки сообщения истекло возможные значения параметра channel: sms/viber/vk т.о. для sms-возможны статусы 7,6,5 для viber/vk - возможны все 5 статусов Итого 13 комбинаций. Перебирать if/elseif мне думается сложно и запутанно, да еще и счетчики каждой итерации... |
|
Последний раз редактировалось solonenko, 14-02-2020 в 13:15. Причина: добавил Отправлено: 13:11, 14-02-2020 | #3 |
fascinating rhythm Сообщения: 6626
|
Профиль | Отправить PM | Цитировать Я имел в виду этих вариантов, чтобы было что импортировать:
Лучше всего - оригинальные файлы, из которых вы берёте данные. |
------- Отправлено: 13:20, 14-02-2020 | #4 |
Новый участник Сообщения: 25
|
Профиль | Отправить PM | Цитировать Цитата DJ Mogarych:
Скрытый текст
log : {@{_id=5e466d132a955d000be83ac1; status=delivered; when=2020-02-14T06:31:14.471Z}, @{_id=5e466d132a955d000be83ac0; status=query; when=2020-02-14T06:30:14.719Z}} mid : 4e7eea88-315e-4bc8-bd9b-8db5237a03b2 lastStatusUpdate : 2020-02-14T09:43:06.966Z status : seen code : 9 channel : viber type : accepted log : {@{_id=5e466d132a955d000be83ac5; status=query; when=2020-02-14T06:30:16.358Z}} mid : 1bb94f6b-34d2-4d70-99a4-8d89d8cfc83c lastStatusUpdate : 2020-02-14T06:30:20.965Z status : delivered code : 7 channel : viber type : primary log : {@{_id=5e466d132a955d000be83aca; status=seen; when=2020-02-14T06:30:46.689Z}, @{_id=5e466d132a955d000be83ac9; status=delivered; when=2020-02-14T06:30:35.487Z}, @{_id=5e466d132a955d000be83ac8; status=query; when=2020-02-14T06:30:16.061Z}} mid : 609e839b-3605-402f-aaca-9772fc3e5dbc lastStatusUpdate : 2020-02-14T06:31:02.371Z status : interact code : 10 channel : viber type : accepted log : {@{_id=5e466d132a955d000be83ad0; status=query; when=2020-02-14T06:50:17.859Z}} mid : cb656a30-de70-4cd5-8be7-cc76e07d9b03 lastStatusUpdate : 2020-02-14T06:50:19.876Z status : delivered code : 7 channel : sms type : primary log : {@{_id=5e466d132a955d000be83ad7; status=seen}, @{_id=5e466d132a955d000be83ad6; status=delivered; when=2020-02-14T06:50:26.680Z}, @{_id=5e466d132a955d000be83ad5; status=query; when=2020-02-14T06:50:16.434Z}} mid : fa1c05b6-ff99-4b14-b78d-2e2ee0b22114 lastStatusUpdate : 2020-02-14T07:13:49.026Z status : interact code : 10 channel : vk type : primary log : {@{_id=5e466d132a955d000be83add; status=query; when=2020-02-14T06:50:28.940Z}} mid : 9a6a25fc-42ed-4d5f-923e-c3ed0a7f1dfb lastStatusUpdate : 2020-02-14T06:50:32.923Z status : delivered code : 7 channel : sms type : primary log : {@{_id=5e466d132a955d000be83ae2; status=seen; when=2020-02-14T06:31:11.350Z}, @{_id=5e466d132a955d000be83ae1; status=delivered; when=2020-02-14T06:30:19.407Z}, @{_id=5e466d132a955d000be83ae0; status=query; when=2020-02-14T06:30:16.549Z}} mid : 03c9745c-e3b1-499a-907c-f6f02a214bfe lastStatusUpdate : 2020-02-14T06:31:22.884Z status : interact code : 10 channel : viber type : accepted log : {@{_id=5e466d132a955d000be83ae8; status=query; when=2020-02-14T06:50:17.760Z}} mid : 83d42465-139d-41fa-9358-3808c83c807f lastStatusUpdate : 2020-02-14T06:50:21.883Z status : delivered code : 7 channel : sms type : primary log : {@{_id=5e466d132a955d000be83aee; status=query; when=2020-02-14T06:35:18.089Z}} mid : ae6d2b8e-baa0-4a86-a736-bc7102e5e652 lastStatusUpdate : 2020-02-14T06:35:22.334Z status : delivered code : 7 channel : sms type : primary log : {@{_id=5e466d132a955d000be83af4; status=delivered; when=2020-02-14T06:50:23.293Z}, @{_id=5e466d132a955d000be83af3; status=query; when=2020-02-14T06:50:16.989Z}} mid : 327f532f-abd0-42f5-9753-c192c1120b8e lastStatusUpdate : 2020-02-14T06:50:36.575Z status : seen code : 9 channel : vk type : primary log : {@{_id=5e466d132a955d000be83afa; status=query; when=2020-02-14T06:30:18.710Z}} mid : 6248ed00-1943-4f3d-9c65-d302c2875afc lastStatusUpdate : 2020-02-14T06:30:42.822Z status : undelivered code : 6 channel : sms type : primary log : {@{_id=5e466d132a955d000be83aff; status=seen; when=2020-02-14T06:31:59.272Z}, @{_id=5e466d132a955d000be83afe; status=delivered; when=2020-02-14T06:31:30.791Z}, @{_id=5e466d132a955d000be83afd; status=query; when=2020-02-14T06:30:17.075Z}} mid : 79533b7c-4eb1-481d-9203-ada703a4513d lastStatusUpdate : 2020-02-14T06:32:03.919Z status : interact code : 10 channel : viber type : accepted Я беру txt-файл(лог отправки), в нем каждый mid отправляю на проверку статуса - получаю ответ. Задача: сделать статистику по каналам доставки и статусу |
||
Отправлено: 13:49, 14-02-2020 | #5 |
fascinating rhythm Сообщения: 6626
|
Профиль | Отправить PM | Цитировать А сервер это возвращает как простой текст?
|
------- Отправлено: 14:43, 14-02-2020 | #6 |
Новый участник Сообщения: 25
|
Профиль | Отправить PM | Цитировать Цитата DJ Mogarych:
$a= Invoke-RestMethod -Uri "https://sd.flomni.com/status/?data=+$($find[0])" -ContentType "application/json; charset=utf-8" -Headers $headers_voice -Method Get PS C:\WINDOWS\system32> $a log : {@{_id=5e466d132a955d000be83aff; status=seen; when=2020-02-14T06:31:59.272Z}, @{_id=5e466d132a955d000be83afe; status=delivered; when=2020-02-14T06:31:30.791Z}, @{_id=5e466d132a955d000be83afd; status=query; when=2020-02-14T06:30:17.075Z}} mid : 79533b7c-4eb1-481d-9203-ada703a4513d lastStatusUpdate : 2020-02-14T06:32:03.919Z status : interact code : 10 channel : viber type : accepted PS C:\WINDOWS\system32> $a.GetType() IsPublic IsSerial Name BaseType -------- -------- ---- -------- True True Object[] System.Array В файле допустим 100 mid. Хочу посчитать, сколько из них доставлены, в какие каналы и какой статус последний. |
|
Отправлено: 15:02, 14-02-2020 | #7 |
fascinating rhythm Сообщения: 6626
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 16:01, 14-02-2020 | #8 |
Новый участник Сообщения: 25
|
Профиль | Отправить PM | Цитировать Цитата DJ Mogarych:
Получается до foreach я создаю пустой массив. Затем в цикле каждый ответ, в моем случае $a, добавляю в массив. После окончания цикла вывожу $array. Верно понимаю решение? |
|
Отправлено: 16:44, 14-02-2020 | #9 |
fascinating rhythm Сообщения: 6626
|
Профиль | Отправить PM | Цитировать Цитата solonenko:
|
|
------- Отправлено: 18:55, 14-02-2020 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
PowerShell - [решено] posh создание массива значений | Ageron | Скриптовые языки администрирования Windows | 1 | 31-01-2020 16:11 | |
PowerShell - [решено] Массив, подсчет кол-ва одинаковых значений и вывод таблицы | God-of-Chaos | Скриптовые языки администрирования Windows | 1 | 16-03-2017 08:14 | |
2010 - [решено] Создание макроса для поиска одинаковых значений в ячейках и укомплектовывания | dyshes90 | Microsoft Office (Word, Excel, Outlook и т.д.) | 26 | 28-01-2015 13:06 | |
Разное - EXCEL - поиск одинаковых значений в ячейках | eva.k | Microsoft Office (Word, Excel, Outlook и т.д.) | 6 | 07-02-2014 14:33 | |
Поиск одинаковых значений в одной таблице MySQL | blackmane | Вебмастеру | 1 | 01-04-2012 14:27 |
|