В Powershell мне нужно найти несколько ошибок в текстовом файле и ближайшее слово между ними. Каждая ошибка содержится в массиве. В прошлом я использовал бы код:
#creating null array
$results = @("")
#creating index for array
for ($i = 0; $i -lt ($errors.length - 1); $i++)
{
$results += $false
}
#selecting string
for ($i = 0; $i -lt $errors.length; $i++)
{
$k = $errors[$i]
$rg = [regex]"WORD.*?$k.*?WORD"
$results[$i] = $content | Select-String -Pattern $rg -AllMatches | Foreach-Object {($_.Matches |
ForEach-Object {$_.value})}
}
$errors
- массив ошибок, $content
- содержимое текстового файла, и каждый элемент в $results
содержит строку из желаемое слово к ошибке к желаемому слову.
Использование $results[$i] = $content | Select-String -Pattern $rg -AllMatches | Foreach-Object {($_.Matches | ForEach-Object {$_.value})}
не работает, потому что мои ошибки содержат подстановочные знаки, такие как звездочки.
Я знаю, что для того, чтобы я мог делать такие символы, мне нужно использовать -like
Я попытался использовать $results[$i] = $content -like $k
вместо этого, но это только возвращает нулевое значение.