строка выбора застряла в бесконечном цикле - PullRequest
0 голосов
/ 15 мая 2018

Я пытаюсь извлечь весь текст, соответствующий определенному шаблону, из файлов в каталоге, используя 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 голосов
/ 15 мая 2018

Как указано в комментариях, вы, вероятно, должны сохранить выходные данные в другую папку или записать файлы (не только путь) в переменную. Примерно так:

$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
...