我需要在PowerShell中显示事件日志消息的最后一行(几乎所有事情都在":"。我无法做到这一点,所以我有的替代方案是输出消息和子字符串。我的消息中的":"位于200-ish。下面的代码显示"之后的56个字符:" -ish。
如何在":"?
之后显示所有内容Get-Eventlog -Logname Application -Source "HELPME" | format-table timewritten, @{l="User";e={$_.message.substring(309, 56)}} -wrap -autosize
如果有帮助,请点击示例消息:
事件ID' 1234567890'在Source' HELPME'无法找到。本地计算机可能没有必要的注册表信息或消息DLL文件来显示消息,或者您可能没有权限访问它们。以下信息是活动的一部分**:**' Blah',' Blahh',' Blahhh'
我只需要代码来显示时间和“Blah' Blahh' Blahhh'
。答案 0 :(得分:1)
这可能比您预期的要简单。字符串有一个名为LastIndexOf()的方法,您可以将其与Substring()方法一起使用。如果省略长度,它应该只输出超出您指定的起始位置的所有内容,如果您使用LastIndexOf,它将显示最后一个:在您的字符串中的位置。所以,这个:
$_.message.substring(($_.message.lastindexof(':')+1))
这将只输出消息的一部分:这就是为什么我有+1,否则它包括冒号。