在第二个"之后分割一个字符串:"

时间:2018-02-22 09:16:04

标签: powershell

我试图从Get-WinEvent消息块中获取文本,通常我只是用它来获取第一句话:

($_.Message).split(".")[0]

如果第一部分由.

分隔,则此方法可以正常工作

Message-Block看起来像这样:

Remotedesktopdienste: Die Sitzungsanmeldung war erfolgreich:

Benutzer: testlab\testuser.local
Sitzungs-ID: 1
Quellnetzwerkadresse: LOKAL.

我尝试仅提取部分Remotedesktopdienste: Die Sitzungsanmeldung war erfolgreich:(包括:将是完美的,但不是强制性的)

简单地使用:作为分隔符不起作用(第二部分缺失)。

之后,我尝试使用

($_.Message).split(':',2)[0]

应该是消息块中的第二个:,这会给出Remotedesktopdienste

另一个想法是使用

($_.Message).split('[\r\n]',2)[0] 

使用第二个新行,也没有成功,结果是Remotedesktopdie

1 个答案:

答案 0 :(得分:2)

所以你想按换行分开:

 $MessageArray = $Message.Split("`n")

然后你可以迭代它

$Counter = 0
$MessageBody = ""
foreach($Line in $MessageArray) {
     if($Counter -eq 0) {
          $FirstLine = $Line
     } else {
          $MessageBody += $Line + "`n"
     }
     $Counter++
}

结果是:$FirstLine有第一行.. $MessageBody包含其余信息

更新:您甚至可以使用此在线人员

 $FirstLine,$MessageBody = $Message.Split("`n")