使用Powershell使用其他txt文件中的模式在txt文件中查找匹配的字符串

Find matching strings in txt file using pattern from other txt file using Powershell

我正在尝试使用另一个包含超过 1000 行字符串的文件在 txt 文件中搜索字符串匹配项。

我试过使用批处理文件查找字符串,但如果字符串包含空格,搜索就会停止。

for /F %%i in (PatternList.txt) do (
echo Files containing %%i
findstr /C:%%i Data.txt
)

然后我尝试使用 Powershell:

到目前为止我已经有了这个,但我想我需要以某种方式循环遍历 PatternList.txt,然后使用列表来查找 Data.txt.

中的每个字符串
$file_data = Get-Content C:\temp\test\PatternList.txt
Get-Content C:\temp\test\Data.txt | Where-Object { $_.Contains($file_data) }

您可以使用 Select-String 搜索多个模式。

$file_data = Get-Content -Path D:\sample\patternlist.txt | Where-Object {$_}
Select-String -Path D:\sample\Source.txt -Pattern @('(?!)'; $file_data)

要处理模式列表文件中的空行,您可以使用添加的 Where-Object,要处理空文件,我们可以使用 Mathias 的建议。
感谢马蒂亚斯。 ;-)