我正在尝试将日志文件输出到变量,并将该变量用作Send-MailMessage的正文。问题是输出中缺少变量中的所有CRLF。例如
$Body = get-content .\TTT.txt $body Test Test1 Test2 write-host "$($Body)" Test Test1 Test2
有什么办法可以避免吗?(保留CRLF)
9rbhqvlz1#
如果必须使用Write-Host,则使用新行添加参数-Separator:
Write-Host
-Separator
Write-Host $Body -Separator "`n"
p4tfgftt2#
文档给出了答案:将集合写入宿主时,集合的元素将打印在同一行上,并以单个空格分隔。这可以用Separator参数重写。Write-Host docs
iqxoj9l93#
从我在Cannot Get Send-MailMessage to Send Multiple Lines上看到的情况来看,解决方案如下所示:
$Body = @() $Body += "Test" $Body += "Test1" $Body += "Test2"
等等
Send-MailMessage -To xxx -From xxx -Smtp xxx -Subject "Test" -Body ($Body | Out-String)
上面的工作如我所愿。
3条答案
按热度按时间9rbhqvlz1#
如果必须使用
Write-Host
,则使用新行添加参数-Separator
:p4tfgftt2#
文档给出了答案:
将集合写入宿主时,集合的元素将打印在同一行上,并以单个空格分隔。这可以用Separator参数重写。
Write-Host docs
iqxoj9l93#
从我在Cannot Get Send-MailMessage to Send Multiple Lines上看到的情况来看,解决方案如下所示:
等等
上面的工作如我所愿。