Удалить текст из строки PowerShell - PullRequest
0 голосов
/ 05 августа 2020

У меня отпускное похмелье, и я не могу осмыслить дилемму Powershell!

У меня есть сценарий, в котором я получаю следующий результат ниже, который сохраняется в переменной $ScanOutput. Теперь я хочу отфильтровать и сохранить код только после ExitCode= (может быть 500 или 0). Как я могу отфильтровать все до и после 500 (это могут быть другие коды, а не stati c).

@{StdOut=Checking for updates...
Determining available updates...
Check for updates completed
Number of applicable updates for the current system configuration: 0
No updates available.
Execution completed.
Program exited with return code: 500
; ExitCode=500; StdErr=}

Заранее спасибо! С уважением, JN

Ответы [ 3 ]

0 голосов
/ 05 августа 2020

Многие способы снять шкуру с кошки при условии, что разделитель ; размещен последовательно. Было бы неплохо проверить, какой метод самый быстрый:

($scanoutput -split ';')[1].Trim()
ExitCode=500
0 голосов
/ 06 августа 2020

Поскольку Дж. Нильссон вернулся и сказал, что на самом деле я был прав в своем утверждении, что это была sh таблица, я добавлю свой ответ, чтобы помочь другим с аналогичной проблемой.

Объект

@{StdOut=Checking for updates... Determining available updates... Check for updates completed Number of applicable updates for the current system configuration: 0 No updates available. Execution completed. Program exited with return code: 500 ; ExitCode=500; StdErr=}

Чтобы получить ExitCode от объекта, просто не забудьте присвоить его переменной, в моем случае $ ha sh, тогда вы можете получить значение следующим образом:

$hash.ExitCode
0 голосов
/ 05 августа 2020

Вы можете просто использовать Select-String:

($ScanOutput | Select-String -Pattern 'ExitCode=(\d+)').Matches.Groups[1].Value
500
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...