对于这个晦涩的标题,我很抱歉,这是我的问题以及我想做的事情。
我的档案:
\\mydir\keywords.txt
\\mydir\textfile1.txt
\\mydir\textfile2.txt
\\mydir\textfile3.txt
etc
我的“keywords.txt”包含许多我希望与“textfile1.txt”匹配的关键字(字符串)等等,并接收包含匹配项的文件名的答案。
$keywords = Get-Content -Path '\\mydir\keywords.txt' | Out-String
Select-String -Path '\\mydir\*.txt' -Pattern $keywords
即。以递归方式搜索\ mydir \中.txt的所有文件,并使用文件“keywords.txt”的内容作为搜索关键字。
Get-Content
默认情况下将值作为数组返回,Out-String
应将这些值转换为字符串。
非常感谢所有帮助!
答案 0 :(得分:3)
从代码中删除| Out-String
部分,它会按照您的意图运行。这是因为Get-Content
将在$Keywords
中创建一个字符串数组,-Pattern
参数接受字符串数组输入:
您还应该使用-SimpleMatch
,除非您希望将关键字解释为RegEx模式。
Select-String -Path '\\mydir\*.txt' -Pattern (Get-Content -Path '\\mydir\keywords.txt') -SimpleMatch