Итак, у меня есть 2 файла, которые имеют один и тот же стиль содержимого списка - Font ID, Font Def и Timestamp. Я хочу взять второй файл с новыми шрифтами и заменить строки первого файла с соответствующими идентификаторами шрифтов --- с помощью powershell (без базы данных, которая была бы намного проще).Замена строк текстового файла с помощью powershell, основанных на строках другого текстового файла
File2 text line = [FontIDA01] 5,5,5,5, randomtext, 11/10/2001 должен заменить линию File1, где [FontIDA01] соответствует, и заменить 5,5,5,5 с 6,6,6,6 и датой с датой на этой линии.
$content = Get-Content $fileSelected #(path chosen by user)
$masterContent = Get-Content $masterContentPath #(hardcoded path)
foreach($line in content)
{
$fontID = $line.SubString($startFontID, $endFontID)#this just sets font id = 23jkK instead of [23jkK]
foreach($masterLine in $masterContent)
{
if ($masterLine.Contains($fontID))
{
$masterContent -replace $masterLine, $line where-Object{$_.Name -contains $fontID} | Set-Content $masterContent -raw
}
}
}
Я даже близко?
Если у вас есть ответ, который является более новичком? Я не знаю, что делает ваш код –
Собственно, это именно то, что я думал о вашем коде. Глупый я, полагая, что мой код не требует пояснений ... Хорошо, кто-то опубликует лучший ответ, надеюсь. Если это какая-то помощь, код обрабатывает каждый файл строки за строкой, используя '|' piping. – wOxxOm