将 get-content 放入 html 电子邮件的数组中

2023-11-30

html部分


$html = @($htm)

$html = @"

<!doctype html>

<html lang="en">
<head>
<body>
text
$computername
$username
text
</body>
</html>
"@

 $html | out-file c:\scripts\temp\Report.html

我在 $html 变量中有 html 语言。当我决定更改 HTML 代码时,我需要返回 PowerShell 脚本。我宁愿将 html 放在单独的文件中。如何使用 get-content 将单独文件的内容放入$html = @"..."@多变的。
我在 html 部分使用 powershell $variables 来制作动态电子邮件!


您正在寻找字符串模板,即根据占位符(变量)表示的当前值,按需扩展带有占位符的字符串的能力。

PowerShell 通过(鲜为人知)提供了这样的功能.InvokeCommand.ExpandString()的方法自动的$ExecutionContext多变的,它处理字符串值就好像它是 an 可展开(双引号)字符串 ("..."),即执行对其进行字符串插值:

  • 通过以下方式保存您的 HTML 模板字符串verbatim细绳 ('...'),即一个single- 引用一,以防止instant嵌入变量引用的扩展,例如$computer:
# Note the use of *single* quotes, to ensure
# that $computername and $username *aren't* expanded.
@'
<!doctype html>
<html lang="en">
<head>
<body>
text
$computername
$username
text
</body>
</html>
'@ | Out-File c:\scripts\temp\Report.html
  • 然后使用模板如下:
# Read the template in full (-Raw)
$htmlTemplate = Get-Content -Raw c:\scripts\temp\Report.html

# Perform sample instantiations of the template.
1..2 | ForEach-Object {
  # Set the variable values to use in the template.
  $computername = "computer$_"
  $username = "user$_"
  # Now instantiate the template
  $ExecutionContext.InvokeCommand.ExpandString($htmlTemplate)
  "---`n" 
}

这会输出以下内容 - 请注意如何$computer and $username扩展到这些变量当时的值:

<!doctype html>
<html lang="en">
<head>
<body>
text
computer1
user1
text
</body>
</html>

---

<!doctype html>
<html lang="en">
<head>
<body>
text
computer2
user2
text
</body>
</html>

---

Caveat:

  • 上述假设您要么完全控制 or 隐含的信任HTML 模板文件的内容,假设可以注入任意内容commands进入模板,使用$(...), the 子表达式运算符

  • 请参阅下文了解防止子表达式扩展的方法。


防止子表达式的扩展 ($(...)),防止代码注入:
  • 以下变体确保任何(未转义)$(...)序列是exempt从扩展,即它们是逐字保留.

  • 这是通过以下方式实现的`- 逃离$在每一个$(顺序,但是仅当那样$还没有逃脱。后一个要求需要不平凡的regex以下。简而言之,$ in $(仅当其前面有以下任一情况时才必须转义no or an 偶数 of `字符。 (后者形成一个序列转义转义字符,这意味着以下$ is 未逃脱的)。有关正则表达式的说明以及对其进行实验的选项,请参阅此 regex101.com 页面.

# Read the template in full (-Raw) and escape the $ of unescaped
# $( sequences with ` (backtick), which will prevent expansion of any
# $(...) subexpressions.
$htmlTemplate = 
  (Get-Content -Raw t.html) -replace '(?<!`)((?:``)*)\$\(', '$1`$$('

# Perform sample instantiations of the template.
1..2 | ForEach-Object {
  # Set the variable values to use in the template.
  $computername = "computer$_"
  $username = "user2"
  # Now instantiate the template.
  $ExecutionContext.InvokeCommand.ExpandString($htmlTemplate)
  "---`n" 
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 get-content 放入 html 电子邮件的数组中 的相关文章

  • 用于渲染 html 子集的 Django templatetag

    我有一些 html 在本例中是通过 TinyMCE 创建的 我想将其添加到页面中 但是 出于安全原因 我不想只打印用户输入的所有内容 有谁知道模板标签 最好是过滤器 只允许呈现 html 的安全子集 我意识到 Markdown 和其他人就是
  • 宽度:适合内容;在 Chrome 上工作,但在资源管理器上不工作

    我构建了一个应用程序 所有内容都在 Chrome 中完美显示 但如果我在 Windows 资源管理器中打开该应用程序 容器会比应有的小 我在用着width fit content 这是只适用于 Chrome 的东西吗 我怎样才能使其适用于所
  • 可以使用带有 HTML5 播放器的 Amazon S3/CloudFront 流式传输视频吗?

    我想使用 HTML5 视频播放器并流式传输视频 S3 CloudFront 可以实现这一点吗 我了解 Amazon 使用 RTMP 流媒体协议和 HTML5video标签不支持 RTMP 有没有办法用 HTML5 播放器播放视频 Wayne
  • 将输入中每个单词的第一个字符设为大写

    我想知道如何在输入区域自动生成单词的第一个字符 目前我的代码是 Name
  • 当一组凭据下的计划任务启动的进程在另一组凭据下运行另一个程序时,Windows 是否有限制

    所以我有一个简单的例子 其中我有应用程序 A 它对用户 X 本地管理员 有一些硬编码的凭据 然后它使用硬编码的绝对路径启动带有这些凭据的应用程序 B A 和 B 以及 dotnet 控制台应用程序 但是它们不与控制台交互 只是将信息写入文件
  • CSS - div 与父 div 底部对齐(内联块)

    我知道这个 html 很草率 有一些不必要的额外 div 但无论如何 我无法理解为什么 ID 为 info box right 的 div 与父 div 的底部对齐 您可以看到 文本 与下面的 jsfiddle 示例的底部 有什么想法可以让
  • 水平对齐输入字段

    我正在尝试获取一个输入字段 并且它与同一水平线上的关联提交按钮相关 但事实证明这是一个挑战 这是我的代码
  • 如何:带有 onclick 的 div 位于另一个带有 onclick 的 div 中

    只是一个简单的问题 我遇到了 div 与 onclick javascript 之间的问题 当我点击内部 div 时 它应该只触发它的 onclick javascript 但外部 div 的 javascript 也会被触发 用户如何点击
  • powershell Invoke-WebRequest WebSession 不起作用

    我无法让以下代码工作 它似乎已登录 但随后返回带有 response 的登录页面 我猜这与回发有关 有办法解决这个问题吗 谢谢 login Invoke WebRequest Uri http www sqlpass org UserLog
  • Chocolatey 无法使用 PowerShell cmdlet

    所以 我开始使用巧克力了 但是 我注意到 cmdlet 不起作用 例如 如果尝试使用 choco 命令执行任何操作 前任 choco install vlc 它工作得很好 但是 如果我尝试使用旧的 cmdlet 前任 Install Pac
  • 设置浏览器窗口最小化的最小尺寸限制?

    有没有办法在所有浏览器中手动设置浏览器窗口的最小尺寸 你可以试试 body min width 600px 一旦视口小于 600 像素 您将得到一个水平滚动条 这仅适用于支持 min width CSS 属性的现代浏览器 我认为不可能限制用
  • 对一组复选框使用 HTML5“必需”属性?

    使用支持 HTML5 的较新浏览器 例如 FireFox 4 时 并且表单字段具有属性required required 并且表单字段为空 空白 然后点击提交按钮 浏览器检测到 必填 字段为空 并且不提交表单 相反 浏览器会显示一条提示 要
  • 在 HTML5 中创建可拖动和可缩放的网格

    与其他 HTML5 不同如何创建网格问题 我想知道如何制作一个可拖动且可扩展的 绘制网格非常简单 var c document getElementById canvas var ctx c getContext 2d var width
  • 如何倾斜 div 并保持背景图像不倾斜

    我已经花了几个小时了 所以希望有人能提供帮助 我有一个网站 其中大部分 div 都是倾斜的 大多数 div 都包含背景图像 现在我已经让 div 倾斜了 内容完美地位于其中 唯一的问题是背景图像 它与父级一起倾斜 我用谷歌搜索了很多 但找不
  • 如何使用canvas.toDataURL()将画布保存为图像?

    我目前正在构建一个 HTML5 Web 应用程序 Phonegap 本机应用程序 我似乎不知道如何将画布保存为图像canvas toDataURL 有人可以帮我吗 这是代码 有什么问题吗 我的画布被命名为 canvasSignature J
  • 按百分比设置 bootstrap 模态身高

    我正在尝试制作一个带有主体的模态 当内容变得太大时 该主体会滚动 但是 我希望模式能够响应屏幕尺寸 当我将最大高度设置为 40 时 它没有任何效果 但是 如果我将最大高度设置为 400px 它会按预期工作 但不会响应 我确信我只是错过了一些
  • W3C 验证器:“握手警报:unrecognized_name”

    我正在尝试验证我的网站W3C Nu Html 检查器 https validator w3 org nu doc https 3A 2F 2Fwww healthdrop in 2F但我遇到了以下错误 不知道为什么 IO 错误 握手警报 u
  • 单击引导分页链接时调用 jquery 函数

    我想在单击引导分页链接时调用 jquery 函数 假设我想从第1页遍历到第2页 应该调用一个jquery函数 我正在使用以下代码 但它不起作用 ul pagination on click li function alert page ch
  • 三级十进制有序列表 CSS

    我有一个 html 中的三级有序列表 我想为其提供如下样式 1 Item 1 1 1 Item 2 1 1 1 Item 3 下一个 plunker 中有一个 html 示例 http plnkr co edit DqhZ5pJILTUHG
  • HTML 默认图像大小

    我在我的代码上显示 3 张图片 图片具有不同的尺寸 宽度和高度 div class row div class col lg 12 h2 class page header Gallery h2 div div class col md 4

随机推荐

  • 为什么 Symfony2 不捕获异常

    我有一个存储库 class TurnoRepository extends EntityRepository public function findTurnoActivo q this gt createQueryBuilder t gt
  • 在 python Docker 容器中安装 pip 包

    我正在尝试设置运行 python 2 7 的 Docker 映像 我想要在容器中运行的代码依赖于我在构建 Docker 映像期间尝试使用 pip 获取的包 我的问题是 pip 仅获取包的某些部分 而尝试获取其他包时发出错误 这是我的 Doc
  • 写入时 DRF PrimaryRelatedField 读取时 NestedSerializer ?

    我正在使用嵌套序列化器 我需要ProfileSerializer返回完整相关Projectget 请求的对象 只考虑 id 切换 更改当前 就像 post put 请求的 relatedPrimaryField 行为一样ProfileSer
  • 如何在 Electron 中将搜索文本发送到 findInPage

    我尝试使用内容 findInPage 我在index js中有代码 const webContents require electron webContents on found in page event result gt if res
  • 从java中的字符串中修剪换行符

    以下程序的输出 public class TestClass public static void main final String args String token null n token trim System out print
  • 通过服务器请求防止 Android 盗版

    我正在开发一个需要服务器来完成大部分繁重工作的应用程序 我想防止盗版客户端向该服务器发送请求 有没有办法在请求中发送一些标识符 以便我的服务器可以询问 Android Market 是否有人拥有该 id 确实购买了该应用程序 我该怎么做呢
  • 使用 WIF 和 jquery ajax 请求时 ASP.NET MVC 3 中的会话 Cookie 过期处理

    我的项目我正在使用WIFI 但这对于这个问题的上下文来说并不重要 您可以使用处理身份验证的替代框架 问题是关于执行 ajax 请求时处理身份验证失败的问题 尽管如此 就我而言 我编写了继承自的自定义服务器逻辑ClaimsAuthentica
  • 带有 Nodejs 本机模块的 AWS Lambda

    最近我开始使用 AWS Lambda 函数 我的 Nodejs 应用程序运行良好 直到我尝试使用web3 js包裹 添加行后 const Web3 require web3 我收到 HTTP 端点的 内部服务器错误 错误 并在 CloudW
  • Java 正则表达式 - 只包含一个空格的表达式

    我想将所有表达式与一个空格匹配 目前 我正在使用 s s s 不过 这似乎不是一个很好的方法 为什么不 很好 只是有点过于复杂 S s S
  • 在 XML 文件中搜索元素值

    在给定的 XML 文件中 我尝试使用以下命令搜索字符串是否存在XPath在爪哇 然而 即使字符串在那里 我的输出总是显示为 否 希望这里有人能指出我可能做错了什么 XML 文件
  • WIX 工具集包含多个文件

    我们有一个包含多个文件和文件夹的文件结构 我是 wix 工具集的新手 不太确定如何包含所有这些文件并保留目录结构 我知道 我可以添加这样的文件
  • 如何在MySQL中生成唯一的id?

    我正在使用 PHP 和 MySQL 编写脚本 我想要一个 唯一 id 由字符串组成 大写和小写 带数字的字母 例如 gHYtUUi5b 我发现 PHP 中有很多函数可以生成这样的数字 但我担心如何确保 id 是唯一的 UPDATE uuid
  • iOS (Cordova) 上出现键盘时如何调整 Web 视图大小

    在 Phonegap 3 7 0 上 当键盘出现在 iPhone 或 iPad 上时 Web 视图不会调整大小 并且键盘最终位于页脚上方 我希望缩小网络视图 以便页脚保持可见 有没有什么办法解决这一问题 我在这里看到了很多问题 实际上却达到
  • 事务应该在 .NET 还是 SQL Server 中处理?

    我进入了一个使用 NET C 作为前端 SQL Server 2008 作为后端的应用程序 我发现事务总是在 C 代码中处理 似乎这个项目有一条不成文的规则 我们不应该在存储过程中使用事务 我个人认为事务应该在存储过程中处理 因为它可以更好
  • 什么java设计模式可以避免强制转换数据实体

    我目前正在我的应用程序中实现类似异步的事件队列 它被设计为这样工作 一个组件对某些用户输入做出反应并将事件放入队列 另一个 侦听器 正在检查是否存在特定类型的事件在队列内部并运行它自己的业务逻辑 可以有各种事件类型 如 USER MOUSE
  • 如何将 Flutter 永久添加到 Mac 中的路径

    我知道有很多类似的答案 但是我已经检查过它们 观看了相关视频并尝试了无数次 我将 flutter 路径导出到 bashprofile 并按屏幕截图所示保存 但是如果我关闭终端并尝试使用 flutter 命令 例如flutter versio
  • C++ 中的“foreach”循环如何知道数组的长度

    我正在看下面的例子http www cplusplus com doc tutorial arrays 我不知道第二个 for 循环是如何工作的 for循环如何知道数组何时结束 如果它能弄清楚为什么第一个循环不使用类似的方法 我的印象是数组
  • 如何使用 codeigniter 将表单值插入 mysql 数据库[关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我是 Codeigniter 的新手 如何使用 codeigniter 将表单值存储在
  • 将 JButton 图标向左对齐并保持文本居中

    我想设置一个 JButton 使其图标左侧对齐 而文本居中 我已经找到了如何让其中一个位于左侧 另一个位于右侧 或两者处于同一设置 但我找不到我要找的东西 当然我总是可以重新定义paint方法 但我正在寻找一种更精简的方法来做到这一点 您可
  • 将 get-content 放入 html 电子邮件的数组中

    html部分 html htm html text computername username text html out file c scripts temp Report html 我在 html 变量中有 html 语言 当我决定更