我的输入文件中有两行。
示例输入文件(文件名 - file.txt
)
String1 value 'string2'
..
..
..
Call string1
期望的输出:
File.txt. ( i.e. Name of file )
基本上我想要文件名 - 如果它包含这两行
1) string1 value 'string2'
2) CALL string1
即。 string1
出现在'Value 'string2'
之前
'string1'出现在'CALL'
1)和2)是两条不同的线,中间可能有很多条线。
P.S。 a)我正在搜索'string2'。 'string1'可以是任意8个字符。我不知道'string1'
如果它出现在'Value 'String2''
之前我可以存储“String1”,然后搜索'String1'
的剩余记事本文件(如果它在模式CALL STRING1
中则匹配) )
由于
答案 0 :(得分:1)
这样的事可能有用:
$foundCall = $false
$string1 = $null
gc "C:\path\to\file.txt" | % {
if ($_ -match "^(.{8}) value 'string2'") {
$string1 = $matches[1]
} elseif ($string1 -ne $null) {
if ($_ -match "CALL $string1") { $foundCall = $true }
}
}
if ($foundCall) { $file.Name }