【问题标题】:How to preserve text formatting in Powershell variable output?如何在 Powershell 变量输出中保留文本格式?
【发布时间】:2019-08-30 16:07:47
【问题描述】:

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

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

在电子邮件中显示如下(未格式化);

----------------------------------- -------------------------------- ROBOCOPY :: 强大的 Windows 文件复制
-------------------------------------------------- ----------------------------- 开始时间:2019 年 4 月 9 日星期二 09:27:17 来源:I:~temp\SIGNO\ 目标:\BRC\H$~temp\SIGNO\ 文件:. 选项:. /X /NDL /NFL /S /E /COPY:DAT /MOVE /Z /NP /MT:8 /R:10 /W:5
-------------------------------------------------- ---------------------------------------- ---------- -------------------------------------------------- ------ 总复制跳过不匹配失败附加目录:
1235 1235 0 0 0 0 文件 :
147408 147408 0 0 0 0 字节: 79.215 克 79.215 克 0 0 0 0 次 : 27:56:05 2:47:50 0:00:00 0:21:21 结束 : 2019 年 4 月 9 日星期二 12:36:29

我怎样才能使我收到格式化的电子邮件?

【问题讨论】:

    标签: windows powershell robocopy


    【解决方案1】:

    我认为这可以通过您构建邮件消息命令的方式来实现。如果我在此处设置与您相同的情况,我将得到一个带有 25 行格式化代码的 $roboresult 变量。如果您将其作为电子邮件正文发送,则需要将其转换为字符串以使用 send-mailmessage。如果您使用 CRLF 字符连接每一行,则应保留电子邮件中的格式。

    send-mailmessage -from recipient@domain.com -to you@domain.com -subject "Robocopy Results" -body ($roboresult -join "`r`n") -smtpserver servername
    

    根据您的 cmets,您应该能够将 $roboresult 替换为以下内容:

    $($roboresult -join "`r`n")
    

    【讨论】:

    • 我的结构是这样的......code $subject = "ROBOCOPY terminado en $(Get-Content env:computername) / $AccToMove" $body = "ROBOCOPY se ha finalizado la copia en el servidor $(Get-Content env:computername). nnORIGEN: $tmpsource\$AccToMove nDESTINO: $tmpdest\$AccToMove. nn$roboresult nnConectese al servidor para autorizar que continue..." Send-MailMessage -To $to -CC $cc -From $from -SMTPServer $smtp -Subject $subject -Body $body -Attachments $tmpdest\$RoboLog code` 不知道把“-join”放在哪里@ 987654331@n"" 谢谢@AdminOfThings
    • @Heyvoon,我在我的答案中添加了一条评论,可以帮助您进行格式化。你只需要替换$roboresult
    猜你喜欢
    • 2014-04-18
    • 1970-01-01
    • 2014-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-18
    • 1970-01-01
    相关资源
    最近更新 更多