Поскольку вы говорите, что у вас есть большой файл, вы можете обрабатывать его построчно через конвейер.Общая конструкция выглядит следующим образом:
Get-Content $inputFile | ForEach-Object {
# do stuff here
}
Использование регулярного выражения для сопоставления строк идентификатора и извлечения идентификатора:
if ($_ -match '^ID : (\d+)$') {
$id = $matches[1]
# ...
} else {
# processing of non-ID lines goes here
}
Обработка записи должна начинаться при обнаружении строки идентификатораи должен заканчиваться, когда вы встречаете следующую строку идентификатора или конец файла.