Что вы искали?
Существует множество примеров этого варианта использования по всей сети и прямо здесь, на SO. Люди здесь рады помочь, но вы должны показать усилия, код и ошибки.
Обычно я не делаю этого для подобных сообщений, но позвольте мне начать. Итак, в следующий раз, когда вы посетите, вы будете более подготовлены, чтобы помочь людям, помочь вам.
Просто найдите ...
'PowerShell выберите строку и следующие 3 Строки '
... и всегда читайте файлы справки , не предполагайте и не предполагайте, в данном случае, командлеты Get-Content или Select-String
# Help topics
Get-Help about_*
# get function / cmdlet details
Get-help -Name Get-Content -Full
Get-help -Name Select-String -Full
... и просмотреть переключатель -Context info и примеры. А также файлы справки по условным логам c, т. Е. If / then.
PowerShell: выбор строки, предшествующей совпадению - проблема Select-String -Context при использовании входной строковой переменной
Чтение текстового файла с -context
Прочитайте обсуждение и посмотрите ответ.
Итак, ваш вопрос может почти считается дубликатом потока SO, описанного выше, хотя он выглядит наоборот, что означает, что вам просто нужно переключить направление, как во втором примере.
Обновление
ОК, так как вы только что опубликовали какой-то код (хотя всегда обновляйте свой вопрос кодом, вместо того, чтобы помещать его в раздел комментариев, чтобы было легче следить за ним и чтобы люди могли разобраться) показывая, что вы идете по правильному пути, это действительно так просто:
# Example
@'
line1
line2
line3
line4
line5
'@ | Out-File -FilePath 'D:\temp\FileWithLines.txt'
Get-Content -Path 'D:\temp\FileWithLines.txt' |
Select-String -Pattern line2 -Context 0,3
<#
# Results
> line2
line3
line4
line5
#>
Get-Content -Path 'D:\temp\FileWithLines.txt' |
Select-String -Pattern line1 -Context 0,3
<#
# Results
> line1
line2
line3
line4
#>
If (Get-Content -Path 'D:\temp\FileWithLines.txt' | Select-String -Pattern line0)
{
Get-Content -Path 'D:\temp\FileWithLines.txt' |
Select-String -Pattern line1 -Context 0,3
}
Else
{
Write-Warning -Message "Current line is
$(Get-Content -Path 'D:\temp\FileWithLines.txt' |
Select-String -Pattern line1)"
}
<#
# Results
WARNING: Current line is
line1
#>