查找包含特定字符串的所有文件和行

查找包含特定字符串的所有文件和行

我对 powershell 还很陌生,我需要帮助我的同事查找文件夹中包含单词 的所有文件/Documents/

输出必须在包含路径和该文件中的行的文本文件中。

首先,我设法使用以下代码提取路径。但我无法包含以下几行:

$path = 'C:\Users\XXX'
$Text =”/Documents/"
$PathArray = @()

Get-ChildItem $path -Filter *.rdl -Recurse |
 ForEach-Object { 
 If (Get-Content $_.FullName | Select-String -Pattern $Text ){
            $PathArray += $_.FullName
            $PathArray += $_.FullName

           #write-Host "jhk"
         }
    $PathArray | % {$_} | Out-File "C:\Users\XX\tes2.txt"-Append
 }
 Write-Host "Contents of ArrayPath:"
$PathArray | ForEach-Object {$_}

该代码有效,但正如所说,我也不确定如何添加这些行。

答案1

至关重要的是,如果你是新手,你首先要花时间进行熟悉,以避免遇到许多不必要的挫折和困惑。

搜索PowerShell 上的 Microsoft 虚拟学院YouTube免费视频培训。

以下是一些其他资源和建议:

  • 这里有免费电子书地点
  • 阅读您尝试使用的任何 cmdlet 的完整帮助文件
  • 通过例子进行练习
  • 再次阅读帮助文件
  • 选几本好书,比如,“一个月午餐中的 PowerShell”
  • 微软网站和其他网站上有很多免费的 PowerShell 电子书。

也可以看看:PowerShell 生存指南

至于你问题的具体例子。这种方法怎么样?

$searchWords = @('Hello','Client')

Foreach ($sw in $searchWords)
{
    Get-Childitem -Path "d:\temp" -Recurse -include "*.txt","*.csv" | 
    Select-String -Pattern "$sw" | 
    Select Path,LineNumber,@{n='SearchWord';e={$sw}}
}


# Partial Results

Path                                            LineNumber SearchWord
----                                            ---------- ----------
D:\temp\Duplicates\BeforeRename1\PsGet.txt             157 Hello     
D:\temp\Duplicates\BeforeRename1\PsGet.txt             161 Hello     
D:\temp\Duplicates\BeforeRename1\StringText.txt          1 Hello     
D:\temp\Duplicates\PoSH\PsGet.txt                      157 Hello     
D:\temp\Duplicates\PoSH\PsGet.txt                      161 Hello     
D:\temp\Duplicates\PoSH\StringText.txt                   1 Hello     
...    
D:\temp\Duplicates\BeforeRename1\PoSH-Get-Mo...        108 Client    
D:\temp\Duplicates\BeforeRename1\Powershell ...         12 Client    
D:\temp\Duplicates\BeforeRename1\Powershell ...         15 Client    
... 
D:\temp\Duplicates\BeforeRename1\WindowsFeat...         92 Client    
D:\temp\Duplicates\BeforeRename1\WindowsFeat...         94 Client    
D:\temp\Duplicates\BeforeRename1\WindowsFeat...        149 Client    
D:\temp\Duplicates\BeforeRename1\WindowsFeat...        157 Client    
D:\temp\Duplicates\BeforeRename1\WindowsFeat...        191 Client    
D:\temp\Duplicates\BeforeRename1\WindowsFeat...        239 Client    
D:\temp\Duplicates\BeforeRename1\WindowsFeat...        241 Client  

相关内容