最终,我通过电子邮件发送内容。
$From = "[email protected]"
$To = "[email protected]
$subject = "Invalid language files"
Send-MailMessage -SmtpServer "smtp.domain.com" -From $From -To $To -Subject $subject -Body $body
当我收到消息时,该行有预期的双重空间,但是$ invalid_hosts的内容都在一行。我也尝试做
The following files in <filepath> were found to be invalid and renamed
和
$body = $invalid_hosts -join "`n"
无法正常工作。我需要做什么才能完成这项工作?
管将数组置于
$body = [string]::join("`n", $invalid_hosts)
cmdlet,将它们从字符串对象集合转换为单个字符串:
Out-String
足够只需管道即
PS> $body = $invalid_hosts -join "`r`n" | Out-String
我不确定如何回答其他所有内容,但是对于PowerShell保证的新线,请使用: [环境] :: newline代替您的“ n”
$body = $invalid_hosts -join "`r`n"
$body = "The following files in $Path were found to be invalid and renamed `n`n" + $body
$MessageStr = "The following files in " + $Path + " were found to be invalid and renamed"
$BodyArray = $MessageStr + $Invalid_hosts
$Body = $BodyArray -join "`r`n"
我当然不是PowerShell的专家,但是我发现了一种更简单的方法。 只需将管道带到这样的管道:
$result -replace("`r`n"," ")
这与OP问题略有不同。 它不会与Newlines一起加入数组,但是在编写输出时确实会提供新线。
很久以前就问这个问题,但是我的搜索在这里指出了我的指向,因此我分享了我的其他人进行相同搜索的解决方案。 如上所述,[环境] :: newline是在PowerShell中创建线路断路的唯一可靠方法。您可以使用数组进行-join([环境] :: newline),这避免了弦乐创建的字符串末端的额外行。