【发布时间】:2019-12-23 08:44:03
【问题描述】:
尝试在所有 .txt 文件中递归搜索特定单词,并返回找到该文本的文件路径和上下文文本行。
当前使用下面的 PowerShell 脚本递归搜索并导出到一个单独的文件中找到文本的文件的路径,然后打开它们以手动搜索上下文。由于上下文不同,该词可能在文件中多次出现,都需要进行审查。
$Path = Get-Location
$Text0 = "sometext"
$PathArray = @()
$Results0 = "$Path\$Text0.txt"
Get-ChildItem $Path -Filter "*.txt" -Recurse -Force -ErrorAction SilentlyContinue |
Where-Object { $_.Attributes -ne "Directory" } |
ForEach-Object {
if (Get-Content $_.FullName | Select-String -Pattern $Text0) {
$PathArray += $_.FullName
$PathArray += $_.FullName
}
}
Write-Host "Contents of ArrayPath:"
$PathArray | ForEach-Object {$_} | Out-File $Results0 -Append
我希望“c:\folder\folder\folder\textfile.txt”(当前输出)的输出是“c:\folder\folder\folder\textfile.txt; 这是包含上下文的文本行在哪里找到了一些文本。”
【问题讨论】:
标签: powershell recursion return-path