Назад | Перейти на главную страницу

Сообщение Powershell send-mail, как поместить разрыв строки в переменную тела

Я ищу строку в нескольких файлах в папке. Если я получу эту строку, я хотел бы отправить по электронной почте все эти папки, в которых есть эта строка. Я понял все это и настроил свой формат так, как хочу.

Проблема в том, что когда я отправляю электронное письмо, содержимое отображается в одной строке. Я хочу, чтобы этот текст был разбит по слову. Ниже приведен код:

$find = Get-Childitem –Path C:\inetpub\wwwroot\*\Web.config | Select-String -Pattern "abc..config" 
$boards = $find.Path | Out-String 

[array]$split = $boards.Split("\") 
$count = $split.Count

$out = for ($i=0; $i -le $count; $i++) {
    $split[$i+3]
    $i = $i + 3
    }

$out2 = $out | Out-String

Send-mailmessage -from "" -to "" -subject "Test" -body $out2 -BodyAsHtml -priority  High -dno onFailure -smtpServer 

Проблема в том, что тело отображается, как показано ниже: ABC ABC2

Но я хочу, чтобы тело было:

ABC
ABC2 

Я также попытался получить вывод в текстовый файл и использовать -Raw с gci:

$find = Get-Childitem –Path C:\inetpub\wwwroot\*\Web.config | Select-String -Pattern "abc..config" 
$boards = $find.Path | Out-String 

[array]$split = $boards.Split("\") 
$count = $split.Count

$out = for ($i=0; $i -le $count; $i++) {
    $split[$i+3]
    $i = $i + 3
    }

$out | Out-file -FilePath C:\Test.txt 
$body = Get-content C:\Test.txt -Raw 


Send-mailmessage -from "" -to "" -subject "Test" -body $body -BodyAsHtml -priority  High -dno onFailure -smtpServer 

Я использовал Out-String и -Raw с gci, и я использую V4. Не уверен, что мне не хватает. Когда я выводю файл, это правильный формат с разрывами строки, но не при отправке электронной почты. Я бы предпочел не создавать текстовый документ, а просто использовать переменную в теле.

Спасибо

Содержимое вашего сообщения НЕ HTML, но вы используете -bodyAsHtml при отправке сообщения по почте. Ваше тело - это просто текст, и когда вы укажете -bodyAsHTML что приводит к удалению разрывов строк. Удаление -bodyAsHtml должен решить вашу проблему.

В документе HTML разрывы строк представлены <P>, <BR>, и сохраняются только тогда, когда они появляются внутри <PRE>.