Отобразить конкретное слово в powershell - PullRequest
0 голосов
/ 04 октября 2019

Я хочу отобразить «SWEUserName = r.m12345»

Process RequestDetail 4 f45d912121f4: 0 2017-01-01 10:04:13 Командный процессор SWE - обрабатывать запрос пользователя: SWEFo = SWEEntryForm SWESD = 3SWENeedContext = false SWENoHttpRedir = false SWECmd = ExecuteLogin W = t SWEUserName = r.m12345 SWESPNR = SQOIWO = SWSAH = SWEH = _tid = 12345678 SWEC = 0 SWEW = SWEBID = -4 SRN = 100 * * 100 * 123 * SW0S = 12390Код: $ Показать |Select-String -Pattern 'SWEUserName *' -CaseSensitive -SimpleMatch

Ожидаемый вывод: SWEUserName = r.m12345

1 Ответ

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

Вы должны использовать регулярное выражение для этого.

Пример ниже:

$sample = 'Process RequestDetail 4 f45d912121f4:0 2017-01-01 10:04:13 SWE Command Processor - Handle user request: SWEFo=SWEEntryForm SWESD=3 SWENeedContext=false SWENoHttpRedir=false SWECmd=ExecuteLogin W=t SWEUserName=r.m12345 SWESPNR= SQOIWO= SWSAH= SWEH= _tid=12345678 SWEC=0 SWEW= SWEBID=-4 SRN= SWETS=1234567890 SWEWN='

$isMatch = $sample -match 'SWEUserName=[^\s]+'

if ($isMatch) {
  Write-Output $Matches[0]
}

От: https://www.regular -expressions.info / powershell.html

В качестве побочного эффекта оператор -match устанавливает специальную переменную с именем $ match. Это ассоциативный массив, который содержит общее совпадение регулярных выражений и все совпадения групп захвата. $ match [0] дает общее совпадение с регулярным выражением, $ соответствует [1] первой группе захвата и $ соответствует ['name'] тексту, которому соответствует именованная группа "name".

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