select-string卡在无限循环中

时间:2018-05-15 13:25:17

标签: regex powershell select-string

我正在尝试使用PowerShell从目录中的文件中提取与特定模式匹配的所有文本。但是,由于某种原因,它似乎无限循环(输出是一个无休止重复的相同结果集,脚本永远不会完成)。请问,有人可以给我一个关于问题的提示吗?

$input_path = 'C:\Users\*.txt'
$output_file = 'C:\Users\*.txt'
$regex = '[A-Za-z]+?_V[A-Z][A-Z0]?[A-Z]? [A-Za-z]+?_R[A-Z][A-Z]?V?'
select-string -Path $input_path -Pattern $regex -AllMatches | % { $_.Matches } | % { $_.Value } > $output_file

1 个答案:

答案 0 :(得分:1)

正如评论中所指出的,您应该将输出保存到不同的文件夹或将文件(不仅仅是路径)捕获到变量中。像这样:

$input_files = Get-Childitem 'C:\Users\*.txt'
$output_file = 'C:\Users\output.txt'
$regex = '[A-Za-z]+?_V[A-Z][A-Z0]?[A-Z]? [A-Za-z]+?_R[A-Z][A-Z]?V?'
($input_files | Select-String -Pattern $regex -AllMatches).Matches.Value > $output_file