我想在powershell中使用for each循环,从条件匹配后的文件中捕获一组连续的5行

6g8kf2rb  于 2022-12-13  发布在  Shell
关注(0)|答案(2)|浏览(123)
$ourfilesdata = Get-Content "P:\myfiles\details.txt" 

    foreach ($i in $ourfilesdata )
        {
        if ( $i -match '\Mobile\b') {continue)
          {
          Write-Output "$i"
          }
        }

我的输入就像50行

aaaaaaa
bbbbb
Request
Mobile
Sim
datacard
internet
ccccccc
dddddddd
fffffff

输出

mobile
sim
datacard
internet

注意:-这些输入行在我的文件中是水平的

cig3rfwq

cig3rfwq1#

我不太明白你想达到什么目的,但看看这是否是你想要的:

#Current working directory
$PSScriptRoot = Split-Path -Parent -Path $MyInvocation.MyCommand.Definition
$MainPath = $PSScriptRoot += "\"

$ourfilesdata = $MainPath + "Randomc.txt"

$ourfilesdata

$search = '\\Mobile\\b'
$GetLine = Get-Content $ourfilesdata | Select-String $search

$GetLine.LineNumber

$GetLine
yqlxgs2m

yqlxgs2m2#

Select-String  "P:\myfiles\details.txt" -Pattern 'Request\b' -Context 0,5 |
    Foreach-Object { $_.Line,$_.Context.PostContext}

这将100%的工作,并感谢我以后:-)

相关问题