如何在Powershell变量输出中保留文本格式?

问题描述 投票:0回答:1

我在我的PS脚本上使用下面的代码来捕获Robocopy输出的一部分并通过电子邮件发送它,但它不保持输出格式。

$roboresult = (Get-Content $tmpdest\$RoboLog | Select-Object -first 15)
$roboresult += (Get-Content $tmpdest\$RoboLog | Select-Object -last 10)
$roboresult

它出现在如下的电子邮件中(未格式化);

-------------------------------------------------- ----------------------------- ROBOCOPY ::适用于Windows的强大文件复制 -------------------------------------------------- -----------------------------已开始:Tue Apr 09 09:27:17 2019来源:I:\ ~temp \ SIGNO \ 目的地:\ BRC \ H $ \ ~temp \ SIGNO \ Files :.选项:。 / X / NDL / NFL / S / E / COPY:DAT / MOVE / Z / NP / MT:8 / R:10 / W:5 -------------------------------------------------- ---------------------------- ---------------------- -------------------------------------------------- ------总复制跳过的不匹配FAILED Extras Dirs: 1235 1235 0 0 0 0文件: 147408 147408 0 0 0 0字节:79.215 g 79.215 g 0 0 0 0时间:27:56:05:2:47:50 0:00:00 0:21:21截止日期:2009年4月9日12:36:29

我怎么能这样收到格式化的电子邮件?

提前感谢您提供任何帮助。干杯!

windows powershell robocopy
1个回答
0
投票

我认为这可以用于构建邮件消息命令。如果我设置了你在这里的相同情况,我将得到一个带有25行格式化代码的$roboresult变量。如果要将其作为电子邮件正文发送,则需要将其转换为字符串才能使用send-mailmessage。如果您使用CRLF字符加入每一行,则应保留电子邮件中的格式。

send-mailmessage -from [email protected] -to [email protected] -subject "Robocopy Results" -body ($roboresult -join "`r`n") -smtpserver servername

根据您的意见,您应该能够用以下内容替换$roboresult

$($roboresult -join "`r`n")
© www.soinside.com 2019 - 2024. All rights reserved.