Вы можете передавать значение из Get-Content в ForEach-Object и прерывать при выполнении условия.
Например, если вы хотите разбить при достижении определенного соответствия регулярному выражению, вы можете использовать следующее:
Get-Content -Path "$PSScriptRoot\out.txt" -Wait | ForEach-Object {$_ ; if($_ -Match "some regex"){break} }
Если вы хотите разбить после n строк, то какБрюс ответил, что вы можете использовать Select-Object -Frist n
.
. Обратите внимание, что если файл уже содержит контент, удовлетворяющий условиям, и вам нужны только новые данные, добавляемые в файл, вам также следует использовать *Опция 1009 *.
Например, если файл уже содержит 9 строк, и вы хотите, чтобы только 9 первых строк были добавлены в файл после того, как вы запустите команду, используйте:
Get-Content -Path "$PSScriptRoot\out.txt" -Wait -tail 1 | select -skip 1 -first 9
При -tail 1
команда выведет только последнюю строку файла и новые данные, которые впоследствии будут добавлены в файл.-skip 1
используется для фильтрации последней строки и вывода только новых данных.