Удалить элементы из таблицы вывода в Powershell - PullRequest
0 голосов
/ 04 октября 2018

Итак, у меня есть скрипт powershell, который извлекает данные из API и возвращает их в виде отформатированной таблицы, хотя конечным продуктом будет список.Проблема в том, что когда я печатаю таблицу, у меня есть некоторые записи, которые мне не нужны в моем конечном выводе.Вот как я строю таблицу:

Write-Output $xml.pnet_message_history_packet_response.imessage | Format-Table -Property @{Label="form_id"; Expression={$_.formdata.form_id}}
, ... other fields... , 
@{Label="Test"; Expression={$_.formdata.im_field.field_number}}

А вот как выглядит вывод:

form_id        DriverName     TrailerNumber  TrailerHub     DefectFound    TractorDefect  Field7         TractorDefectD TractorRemarks MoreTractorDef Field11        Field13       TrailerDefect Test

-------        ----------     -------------  ----------     -----------    -------------  ------         -------------- -------------- -------------- -------        -------       ------------- ----
125413                                                                                                                                                                                           {5, 6, 12,...

92477                                                                                                                                                                                            1
125413                                                                                                                                                                                           {5, 6, 12,...

52768          regglseton     4022           0              Yes            Yes            Windows        Windows        driver side... No             Windows        Windows                     {2, 3, 4, ...
52768          Robert F       4035           111            No                                                                                                                                   {2, 3, 4, ...
53420          rs8                                                                                                                                                                            {8, 12, 13...

Но я хочу удалить все записи, где form_id это что-нибудьНО 52768. Я хочу вернуть те же данные, но только там, где form_id равен 52768. Чтобы пояснить далее, я хочу вывод, подобный этому:

form_id        DriverName     TrailerNumber  TrailerHub     DefectFound    TractorDefect  Field7         TractorDefectD TractorRemarks MoreTractorDef Field11        Field13       TrailerDefect Test

-------        ----------     -------------  ----------     -----------    -------------  ------         -------------- -------------- -------------- -------        -------       ------------- ----
52768          regglseton     4022           0              Yes            Yes            Windows        Windows        driver side... No             Windows        Windows                     {2, 3, 4, ...
52768          Robert F       4035           111            No                                                                                                                                   {2, 3, 4, ...

Какой лучший способ сделать это?Записать таблицу в текстовый файл и обработать файл построчно?Я надеялся избежать разбора другой строки и надеялся просто сузить данные, напечатанные в сценарии, но я, конечно, приму любой ответ, который поможет найти лучшее простое решение!

Спасибо!

1 Ответ

0 голосов
/ 04 октября 2018

Перед передачей в Format-Table попробуйте выполнить фильтрацию по свойству form_id, используя Where-Object:

Write-Output $xml.pnet_message_history_packet_response.imessage | Where-Object {$_.form_id -eq "52768"} | Format-Table

Или используя оператор in:

Write-Output $xml.pnet_message_history_packet_response.imessage | Where-Object {$_.form_id -in "52768"} | Format-Table

Это должно удалитьнежелательные записи из таблицы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...