使用PowerShell-Pattern在多个文件上搜索多个值

团队——我有一段按设计工作的代码片段。它将扫描特定单词的文件夹层次结构中的所有文件,然后返回找到该单词的所有实例的文件的重复数据删除文件路径。

$properties = @(
    'Path'
)

Get-ChildItem -Path Server_NameFolder_Name* -recurse |  
Select-String -Pattern ‘Hello’ | 
Select-Object $properties -Unique |
Export-Csv Server_NameFolder_NameFile_Name.csv -NoTypeInformation

我想

  1. 展开此代码以便能够一次搜索多个单词。因此,所有找到“你好”或“Hola”的情况......如果可能的话,可能还有一个完整的单词列表。
  2. 让代码不仅返回文件路径,还返回绊倒它的单词......如果两个单词都绊倒了它,那么同一路径的多行

我发现了一些关于使用以下方法进行多词搜索的文章:

  where { $_ | Select-String -Pattern 'Hello' } |
  where { $_ | Select-String -Pattern 'Hola' } |

或者

Select-String -Pattern ‘(Hello.Hola)|(Hola.Hello)’ 

这些代码将运行......但在输出文件中没有返回任何数据......它只是带有标题“路径”的空白。

我遗漏了一些明显的东西......有人能看到一双新鲜的眼睛吗?

多发性硬化症

回答

  • Select-String-Pattern参数接受一模式。

  • 每个Microsoft.PowerShell.Commands.MatchInfo实例输出Select-String都有一个.Pattern属性,指示匹配的特定模式。

Get-ChildItem -Path Server_NameFolder_Name* -recurse |  
  Select-String -Pattern 'Hello', 'Hola' | 
    Select-Object Path, Pattern |
      Export-Csv Server_NameFolder_NameFile_Name.csv -NoTypeInformation


以上是使用PowerShell-Pattern在多个文件上搜索多个值的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>