我已经看过很多帖子,询问如何从powershell中的文件中删除空行,但我试图保留它们,而不是在send-mailmessage调用中使用bodyashtml。
我有一个文件mail.txt,它是:
mail file blah blah blah
hshshshshs
当你捕获该文件时,它看起来不错;主要问题是,当你将“猫”视为变量时,比如
$BLAH = $(cat ${MAIL_FILE})
echo "blah is $BLAH"
它返回
blah is mail file blah blah blah hshshshshs
所以当它作为body的一部分传递给send-mailmessage:
$BODY = @"
this is line two
$(cat ${MAIL_FILE})
"@
send-mailmessage `
-from ${FROM} `
-to ${MAIL_RECIPIENT} `
-subject ${SUBJECT} `
-body ${BODY} `
-smtpserver ${RELAYHOST} `
-priority ${PRIORITY}
它在电子邮件中显示为
line two
mail file blah blah blah hshshshshs
而不是
<blank line here>
line two
mail file blah blah blah
hshshshshshhs
那么如何按原样“维护”文件,传递给邮件正文而不是作为附件?理想情况下,如何在该机构中获得领先的空白。
答案 0 :(得分:3)
Get-Content
(别名cat
)实际上将内容读取为字符串数组,每个字符串代表一行。在powershell 3.0中,您可以使用-Raw
标志来获取整个文件。
$BLAH = cat ${MAIL_FILE} -Raw
否则您可以使用join
运算符:
$BLAH = (cat ${MAIL_FILE}) -join "`r`n"