使用PowerShell从多个子目录中的多个文件中提取文本并输出到文件

时间:2016-11-24 22:18:44

标签: regex powershell

我正在尝试从一系列文本文件中提取文本到.txt文档。文本文件存储在桌面上的一系列子目录中。

到目前为止,我可以使用正则表达式从特定文本文件中获取变量,但我需要它来搜索跨越多个目录的多个文件 - 而不是我指向它的单个文件。

$input_path = "C:\Users\Darren\Desktop\FolderofData\DataFile1.txt"
$regex = '(\W"_[a-z]+\W)'
$output_file = "C:\Users\Darren\Desktop\Extracted_Data.txt"
select-string -Path $input_path -Pattern $regex -AllMatches | % { $_.Matches } | % { $_.Value } > $output_file

这可以在PowerShell中使用吗?

1 个答案:

答案 0 :(得分:2)

您可以将FileInfo个对象(例如从Get-ChildItem返回的对象)传递给Select-String

Get-ChildItem $home\Desktop -Filter Data*.txt |Select-String -Pattern $regex -AllMatches | % { $_.Matches } | % { $_.Value } > $output_file