用循环填充变量数组

时间:2018-07-04 09:31:26

标签: powershell

我已将日志文件转换为数组,数组中的某些元素包含关键字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
        }
    }
}

1 个答案:

答案 0 :(得分:1)

您可以使用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' }