Powershell - заменить переменную ее содержимым в файле HTML

У меня есть файл HTML:

1.html

!DOCTYPE html>
<html>
    <head>
        <title>Password Reminder</title>
    </head>
    <body>
    
        <p>
        Dear user, your password expires in: <strong>$($days)</strong> days.
        </p>
    </body>
   </html>

Я создал функцию, которая считывает содержимое файла и заменяет переменную $days фактическим значением переменной.

function ReadTemplate($days) {
    $template_content = Get-Content "C:\PasswordReminder\1.html" -Encoding UTF8 -Raw
    #$template_content = [IO.File]::ReadAllText($template)
    $template_content = $template_content -replace "{}",$days
    return $template_content
}

Но при вызове

$content = ReadTemplate -days 2

Вместо Уважаемый пользователь срок действия вашего пароля истекает через: 2 дня.

Я собираюсь

Уважаемый пользователь, срок действия вашего пароля истекает через: $($days) дней.

Вместо $($days) указал {0} но ничего

Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
Начала с розового дизайна
Начала с розового дизайна
Pink Design - это система дизайна Appwrite с открытым исходным кодом для создания последовательных и многократно используемых пользовательских...
Учебник по Javascript
Учебник по Javascript
JavaScript - это язык программирования, который обычно используется для добавления интерактивности и других динамических функций на веб-сайты. Он...
Анимация SVG-узоров без единой строки CSS
Анимация SVG-узоров без единой строки CSS
Недавно я работал над веб-проектом, который позволил мне поэкспериментировать с шаблонами SVG. С SVG очень приятно работать, как только вы получите...
5 распространенных ошибок, которых следует избегать при начале работы с HTML
5 распространенных ошибок, которых следует избегать при начале работы с HTML
Приветствую вас, изучающие HTML! Я составил список распространенных ошибок, которые часто допускают студенты, начинающие изучать HTML. Пожалуйста,...
Неделя 1 - Карточки с временной шкалой
Неделя 1 - Карточки с временной шкалой
Поскольку это была первая неделя, я решил начать с простого. Предполагалось, что у меня будет временная шкала с несколькими карточками, которые можно...
0
0
51
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Попробуйте $template_content = $template_content.replace('$($days)',$days)

Вы можете использовать метод Escape:

$template_content -replace ([regex]::Escape('$($days)')), $days

Поскольку $($days) на самом деле является допустимым синтаксисом переменных PowerShell, вы, вероятно, просто захотите заменить его:

$Days = 17
$ExecutionContext.InvokeCommand.ExpandString($template_content)

Другие вопросы по теме