Добавление текста перед строкой в ​​файле - PullRequest
0 голосов
/ 26 февраля 2020

Я хочу добавить фразу "Попробуйте наше новое мобильное приложение" в файл до указанной строки c.

Вот одно место, куда я хочу добавить фразу. (HTML форматирование придет позже.)

<tr>
**Try our new mobile app**
<p style="font-size:12px;margin: 1em 0;"><i>Sincerely, <br/> Customer Service </i></p>

Я застрял на том, чтобы скрипт добавил фразу в строку перед текстом. Вот то, что у меня есть:

#Variables

#UPDATE THESE FILE PATHS TO MATCH THE TEMPLATE LOCATIONS ON YOUR MACHINE.
$FILES_LOCATION_EMAIL = 'C:\Users\SSteve\Desktop\templates\email'

#UPDATE TO THE PHRASES YOU ARE LOOKING FOR IN THE TEMPLATE.
$PATTERN = @("Sincerely","Questions","Sent by PSEG Long Island","This email was auto generated")

#----------------------------------------DO NOT EDIT BELOW THIS LINE-------------------------------------


#Loop the recorded array positions and insert the new text
ForEach ($PATTERN in $PATTERNS)
{
    Get-ChildItem $FILES_LOCATION_EMAIL -filter body.html -recurse | Get-Content | Select-String -pattern $PATTERN

}

1 Ответ

0 голосов
/ 29 февраля 2020

Если вы пишете сценарии, не нужно быть умным и делать все это в одну строку. Я рекомендую не использовать конвейеры и просто делать вещи простым способом ...

$FILES_LOCATION_EMAIL = 'C:\Users\SSteve\Desktop\templates\email'
$PATTERN = @("Sincerely","Questions","Sent by PSEG Long Island","This email was auto generated")


$files = Get-ChildItem $FILES_LOCATION_EMAIL -filter body.html -recurse
foreach ($file in $files) {
    $content = Get-Content $files
    $output = ''
    foreach ($line in $content) {
        if ($line | Select-String $PATTERN)  {
            $output += '**Try our new mobile app**'
        }
        $output += $line  
    }
    $output | Out-File -FilePath $file.fullname  -WhatIf
}

Может быть, не самый умный или быстрый способ. Но я думаю, что это работает ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...