首页 > 解决方案 > 用循环填充数组

问题描述

我已将日志文件转换为数组,数组中的某些元素包含关键字Messages。我想要一个只包含带有该关键字的元素的新数组。

我尝试了以下方法:

$Logfile_array = Get-Content "C:\temp\logfiles\complete_log.txt"
foreach ($array_element in $Logfile_array)
{
    if ($array_element -match 'Messages')
    {
        foreach ($array_element in $Logfile_array)
        {
          $i++
          echo $i
          $array_message[$i] = $array_element
        }
    }
}

标签: powershell

解决方案


您可以使用Where-Object为您执行此操作,而不是使用foreach遍历数组然后检查每个项目:

$Logfile_array = Get-Content "C:\temp\logfiles\complete_log.txt"
$array_message = $Logfile_array | Where-Object { $_ -match 'Messages' }

或一个班轮:

$array_message = Get-Content "C:\temp\logfiles\complete_log.txt" | Where-Object { $_ -match 'Messages' }

推荐阅读