【发布时间】:2018-02-22 09:16:03
【问题描述】:
我正在尝试从Get-WinEvent 消息块中获取文本,通常我只是使用它来获取第一句话:
($_.Message).split(".")[0]
如果第一部分由 . 分隔,这很好用
消息块如下所示:
Remotedesktopdienste: Die Sitzungsanmeldung war erfolgreich: 贝努策: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
【问题讨论】:
-
这样的东西应该可以工作:($_.Message).split("`r")[0]
-
... 或
n`. Keep in mind, PowerShell doen't escape using `\,它使用反引号```` 哦,该代码突出显示的废话.... 我想说的是:反斜杠(Schraegstrich)不能用作转义字符在 PS 中。使用反引号(撇号或你会这样称呼它。) -
Jayvee 你的解决方案有效,我使用
($_.Message).split("r")[0]`,工作正常。
标签: powershell