首页 > 解决方案 > 从 CSV 的单元格中提取特定值

问题描述

我必须合并很多文件,主要是 CSV,已经有要合并的代码,但是我需要首先修剪所需的 csv 文件,这样我才能得到我想要的数据。每个 CSV 都有前 2 列,每列 8 行,其中包含我想要的数据。然后在它们的正下方有一行生成 8 列。我只有从 2 列的前 8 行获取数据时遇到问题。

csv 前 3 行的示例:

目标名称:MIAW
目标操作系统:Windows
最后更新时间:2019 年 6 月 27 日 07:35:11

这是我想要的数据,前 3 行是这样的,有 2 列。我的想法是将第二列的 3 个值分别存储到一个变量中,然后将其与我的其余代码一起使用。

由于我在提取数据时遇到了问题,而且由于 CSV 的格式化方式根本没有标题,因此很难想出一种简单的方法来读取第二列数据。下面是一个示例,这当然将用于处理多个文件,因此它将是foreach一个foreach.

$a = MIAW-Results-20190627T203644Z.csv
Write-Host "$a[1].col2"

当且仅当我有一个名为 col2 的标题时,这才有效,我可以用第二列的第一个值命名它,但问题是该值会因 CSV 文件而改变。因此,例如,如果我要使用以下方法导入多个文件,我尝试的代码将不起作用:

$InFiles = Get-ChildItem -Path $PSScriptRoot\ *.csv -File |
           Where-Object Name -like *results*

对于第 2 列的第一个值,每个 CSV 将具有不同的值。

有没有更简单的方法来获取我需要的第二列的 3 行?我需要抓住每一个并将每一个存储在不同的变量中。

标签: powershellcsv

解决方案


推荐阅读