Select-String возвращает несколько строк



Я изучаю PowerShell и хочу сопоставить строку в переменной. Рассмотрим следующий пример:



$string = ipconfig
Select-String -InputObject $string -Pattern '127.0.0.1'


Возвращает всю строку. Не просто '127.0.0.1'. поэтому я попробовал:



Select-String -InputObject $string -SimpleMatch '127.0.0.1' -AllMatches


, который также возвращает всю строку. Что я делаю не так? Я просто хочу посмотреть матч, а не другие линии.

520   2  

2 ответов:

Как arco444 упомянул в комментариях, вы можете просто написать:
> $string | Select-String -Pattern "127.0.0.1"
Дополнительные примеры см. В разделеSelect-String Documentation .

Select-String возвращает свойство .Matches, представляющее собой набор совпадений. СВОЙСТВО .Value этого значения соответствует:

$string = ipconfig
(Select-String -InputObject $string -Pattern '127.0.0.1').Matches.Value

В этом примере будут возвращены все значения, которые выглядели как IP-адрес:

(Select-String -InputObject $string -Pattern '\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}' -AllMatches).Matches.Value

Обратите внимание, что если вы сопоставляете с точным шаблоном (например, без подстановочных знаков / регулярных выражений), то вы можете просто использовать -Quiet, который возвращает true / false в зависимости от того, соответствует ли шаблон:

$MyString = '127.0.0.1'
If (Select-String -InputObject $string -Pattern $MyString -Quiet) { $MyString }

Затем

Comments

    Ничего не найдено.