Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 选择字符串并排除?不匹配?_Powershell - Fatal编程技术网

Powershell 选择字符串并排除?不匹配?

Powershell 选择字符串并排除?不匹配?,powershell,Powershell,我需要从日志文件中选择字符串,如果它们以模式“FATAL:”开头,但如果它们包含整行“FATAL:SystemCallError:the interface is unknown.-RegisterEventSource”(由于这是一个每次系统重新启动时都会弹出的错误,我希望从选择字符串结果中排除这些行),则不需要这样做。目前,我的代码搜索所有以“FATAL:”开头的字符串,但如果整行与我引用的上面的一行匹配,我不确定如何让它排除这一点。我希望以某种方式使用selectstring和exclud

我需要从日志文件中选择字符串,如果它们以模式“FATAL:”开头,但如果它们包含整行“FATAL:SystemCallError:the interface is unknown.-RegisterEventSource”(由于这是一个每次系统重新启动时都会弹出的错误,我希望从选择字符串结果中排除这些行),则不需要这样做。目前,我的代码搜索所有以“FATAL:”开头的字符串,但如果整行与我引用的上面的一行匹配,我不确定如何让它排除这一点。我希望以某种方式使用selectstring和exclude或notmatch。这是我目前的代码:

$fatalerrors = Select-String -Pattern "FATAL:" -Path $cheflogfile
我需要不包括这样的行:

"FATAL: SystemCallError: The interface is unknown. - RegisterEventSource" “致命:SystemCaller错误:接口未知。-RegisterEventSource”
同样值得注意的是,我要搜索的所有行都以“致命:”开头。我想这就是我被绊倒的地方。不完全确定。

试试这样的方法:

gc $cheflogfile | ?{ $_.StartsWith('FATAL:') -and $_ -ne 'FATAL: SystemCallError: The interface is unknown. - RegisterEventSource'}

这将获得所有带有“致命:”的行,但不等于“致命:系统调用错误:接口未知。-RegisterEventSource”

尝试以下操作:

gc $cheflogfile | ?{ $_.StartsWith('FATAL:') -and $_ -ne 'FATAL: SystemCallError: The interface is unknown. - RegisterEventSource'}

这将获得所有带有“致命:”的行,但不等于“致命:系统调用错误:接口未知。-RegisterEventSource”

所有哪些行?我已经在PowerShell 2.0和5.0中试用过,效果如预期。也许您的日志文件正在将所有内容写入一行?或者你有打字错误?都是什么行?我已经在PowerShell 2.0和5.0中试用过,效果如预期。也许您的日志文件正在将所有内容写入一行?或者你有打字错误?举例总是有帮助的。请展示一些示例输入,以及您期望从中得到的输出和实际得到的输出。示例总是有帮助的。请展示一些示例输入,以及您期望从中得到的输出和实际得到的输出。