Я бы построил регулярное выражение из строк во входном файле, а затем использовал Select-String
, чтобы проверить файлы CSV на наличие этого шаблона:
$re = (Get-Content 'input.txt' | ForEach-Object { [regex]::Escape($_) }) -join '|'
Select-String -Path '*.csv' -Pattern $re -CaseSensitive > 'output.txt'
Но поскольку PowerShell производит структурированныеданные, а не простой вывод строки, вы можете использовать эту структуру:
$re = (Get-Content 'input.txt' | ForEach-Object { [regex]::Escape($_) }) -join '|'
Select-String -Path '*.csv' -Pattern $re -CaseSensitive |
Select-Object Filename, LineNumber, Line |
Export-Csv 'output.csv' -NoType
Если вам нужно обрабатывать каждую строку из входного файла отдельно, вы бы сделали это следующим образом:
foreach ($line in Get-Content 'input.txt') {
Select-String -Path '*.csv' -Pattern $line -SimpleMatch -CaseSensitive |
Select-Object Filename, LineNumber, Line |
Export-Csv 'output.csv' -NoType -Append
}