我有一份脚本,它可以在一个目录中的文件内容中搜索一系列字符串(这些字符串存储在一个txt文件中)。我想修改它,以便还可以列出找到的字符串周围的文本(这些是普通字符串,不是正则表达式)。我尝试了很多次,似乎需要使用-Context参数,但我不确定如何从中获取文本。
另外,我要搜索的文件可能没有换行符,所以如果能够只获取搜索项之前和之后的xx个字符,那就更好了。
以下是我目前的脚本(省略了循环文件部分):
如果能写出内容,那就太好了。看起来我需要使用 $_Matches,但不确定如何使用。
另外,我要搜索的文件可能没有换行符,所以如果能够只获取搜索项之前和之后的xx个字符,那就更好了。
以下是我目前的脚本(省略了循环文件部分):
$result = Get-Content $file.FullName | Select-String $control -quiet
If ($result -eq $True)
{
$match = $file.FullName
"Match on string : $control in file : $match" | Out-File $output -Append
Write-host "Match on string : $control in file : $match"
}
如果能写出内容,那就太好了。看起来我需要使用 $_Matches,但不确定如何使用。
if ($result)
,这样看起来更好(在我看来)。但也许我在 PowerShell 中太过追求简洁了 ;) - Joey$result
看起来像一个布尔值,但它实际上不是。即使编程语言允许,我还是更喜欢避免这种混淆。 - Ansgar Wiechers$result
并且它是空字符串时,即使只有一个匹配行,您也会遇到问题,但这在该场景中不太可能发生。) - Joey