使用powershell写入主机的CRLF

vfhzx4xs  于 2023-01-05  发布在  Shell
关注(0)|答案(3)|浏览(127)

我正在尝试将日志文件输出到变量,并将该变量用作Send-MailMessage的正文。问题是输出中缺少变量中的所有CRLF。
例如

$Body = get-content .\TTT.txt
$body
Test
Test1
Test2

write-host "$($Body)"
Test Test1 Test2

有什么办法可以避免吗?(保留CRLF)

9rbhqvlz

9rbhqvlz1#

如果必须使用Write-Host,则使用新行添加参数-Separator

Write-Host $Body -Separator "`n"
p4tfgftt

p4tfgftt2#

文档给出了答案:
将集合写入宿主时,集合的元素将打印在同一行上,并以单个空格分隔。这可以用Separator参数重写。
Write-Host docs

iqxoj9l9

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)

上面的工作如我所愿。

相关问题