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
}
}
}
解决方案
您可以使用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' }
推荐阅读
- laravel - Larvel 护照 auth_token 未保存
- android - 如何在root android外部存储中创建目录?
- javascript - 在 React Bootstrap Table 中渲染 axios 响应
- r - 对于每一行,按 desc 顺序排序前 5 个值并获得列名
- c# - Microsoft.Office.Interop.Word 与 Office 2010 与 Visual Studio 2015 的问题
- swift - 将图像上传到 Firebase 存储只会覆盖 SwiftUI/Swift 5 中的当前照片?
- javascript - 为什么单击扩展时立即执行从 popup.js 向 content.js 发送消息的功能?
- vba - 通过 VBA 在电子邮件中放置图像
- java - 在spring mvc中从ajax调用jasperreport时出现解析器错误
- git - 在集成到主之前测试依赖的 git 功能分支 - 处理预发布