$injectpoint = %{ [Regex]::Matches($file, "DMG>D8>$dob.+?REF>EA>$mrn") } | %{ $_.Value }
foreach ($data in $injectpoint)
{
$file = Get-Content C:\utils\foo\0000000.txt
inject $file $eth $race $lang $data $dob
}
}
}
function inject($file, $eth, $race, $lang, $injectpoint, $dob)
{
Set-Location C:\utils\boo\
$injector = "$race" + ":" + $eth + ":" + $lang
$newString = $data -replace "DMG>D8>$dob", "DMG>D8>$dob>$injector"
$file.Replace($data, $newString) | Set-Content C:\utils\foo\testfile.txt
}
Мой мыслительный процесс заключается в том, что, поскольку мой l oop перечитывает файл в память в начале l oop, новые изменения считываются в память, где он затем сможет установить новое содержимое, не удаляя изменения, которые я сделал в своей предыдущей итерации l oop.
Я попытался изменить место чтения файла в память (вне l oop, внутри функции ввода), но текущая итерация - самая далекая, где я вижу последнюю вставку моего сценария, все остальные перезаписаны.