减少脚本的输出

时间:2018-10-05 08:04:08

标签: powershell

我有一个脚本,该脚本将报告Windows事件日志并通过电子邮件发送有关该事件的消息。问题有时是消息中可能有很多详细信息,这意味着电子邮件无聊可言。我想做的是以一段代码为例,例如消息的前10个字。(红色的前景在电子邮件中也无效)

更新以下代码可将所有内容拆分为新行,但似乎$ event.message返回事件日志中的第一个日志,而不是if中的错误消息声明;

stringstream

关于HTML,如果我将HTML正文放在代码的开头和结尾,那么foreach语句中的格式会去哪里?

 $body += Write-Output "Server $server has an error: " $($event.Message -split '\n')[0]  `n 

2 个答案:

答案 0 :(得分:0)

更改

$event.Message -split '\n'

($event.Message | Out-String) -replace '^((?:\s*\S+){1,10}).*', '$1'

-ForegroundColor Red不能在任何地方使用,因为a)Write-Output没有这样的参数,b)普通电子邮件首先不支持颜色(您需要HTML电子邮件)。

答案 1 :(得分:0)

我认为您已经在换行符中拆分了$event.Message,所以它是多行消息。

您可以仅选择该消息的第一行,并对其代码进行较小的更改:

Write-Output "Server $server has an error:" ($event.Message -split '\n')[0]