Powershell -用HTML文件中变量内容替换变量

laximzn5  于 2022-11-20  发布在  Shell
关注(0)|答案(3)|浏览(177)

我有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

您的密码将在以下时间后过期,而不是“尊敬的用户”:两天。
我越来越
尊敬的用户,您的密码将在以下时间后过期:**$($天)**天。
代替$($days)指定{0}但什么也不

yhxst69z

yhxst69z1#

尝试$template_content = $template_content.replace('$($days)',$days)

ukdjmx9f

ukdjmx9f2#

可以使用Escape方法:

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

pw9qyyiw3#

由于$($days)实际上是一个有效的PowerShell变量语法,因此您可能只需要替换它:

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

相关问题