gpt4 book ai didi

arrays - 根据另一个值返回PowerShell数组值

转载 作者:行者123 更新时间:2023-12-03 00:52:38 25 4
gpt4 key购买 nike

我有一个尝试解析的日志文件,但找不到解决方案。我已经复制了下面的部分日志文件。每组3行是一个错误。

csrak17 remove int_rpsmkt
Could not perform the administration request
Error: HPDMG1064E The group member was not found. (status 0x14c01428)
csrak17 add int_rpsops
Could not perform the administration request
Error: HPDMG1064E The group member was not found. (status 0x14c01428)
csrak17 remove int_rpssales
Could not perform the administration request
Error: HPDMG1064E The group member was not found. (status 0x14c01428)
csrak17 remove int_tpd
Could not perform the administration request
Error: HPDMG1064E The group member was not found. (status 0x14c01428)
csrak17 remove int_trpit
Could not perform the administration request
Error: HPDMG1064E The group member was not found. (status 0x14c01428)

我正在将日志文件加载到数组中,并且返回包含错误代码的行没有问题。我需要做的是首先找到带有“错误:HPDMG1064E”的行,然后向后两行检查该行是否包含单词“add”(如第二组示例)。

有没有一种方法可以根据另一个数组中的值返回数组中的一行?当然,我将遍历文件并重复该过程。

这是我到目前为止的内容,但是由于某种原因,它仅向我的输出文件返回一行。
另外,如您所见,我没有任何代码可尝试根据当前索引找到另一个索引。
$logs = Get-Content C:\Temp\test\ProdtamResults_HPDMG1064E_errors.doc
$Value = "HPDMG1064E"

foreach($log in $logs) {
$i = 0
while ($i -le $logs.length-1) {

if ($logs[$i] -match $Value)
{
return $logs[$i] | out-file C:\Temp\test\results.txt
}
$i++
}
}

最佳答案

试试这个

$logs = Get-Content C:\Temp\test\ProdtamResults_HPDMG1064E_errors.doc
$Value = "HPDMG1064E"

gc $logs | select-string -Pattern $value -Context 3 |
? { $_.context.precontext[1] -match '\sadd\s' } | select linenumber, line

这将返回一个 psobject[],其中包含行号和所需匹配项的行值。

关于arrays - 根据另一个值返回PowerShell数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18874557/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com