powershell - 如何使用powershell读取CSV文件的第一列

标签 powershell csv

我正在尝试使用 powershell 读取 CSV 文件。

我目前在做以下事情:

#Reading CSV
$stats = Import-Csv -Path $counterFile -Delimiter $separator

现在我需要提取不同对象中的列值。

我已经看到我应该能够像这样访问它:

$stats.ColumnHeader

问题是这一列包含日期,天才决定这一列的标题将是计算机的时区,格式很奇怪。

那么如何在不“了解”标题文本且不修改其他列标题的情况下阅读第一列呢?

有没有办法通过索引访问这个列?

最佳答案

每个PSCustomObject有一些隐藏的属性:

$Stats |Get-Member -Force

Name        MemberType   Definition
----        ----------   ----------
pstypenames CodeProperty System.Collections.ObjectModel.Collection`1[[System.String, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]] pstypenames{get=PSTypeNames;}
psadapted   MemberSet    psadapted {ToString, GetType, Equals, GetHashCode}
psbase      MemberSet    psbase {ToString, GetType, Equals, GetHashCode}
psextended  MemberSet    psextended {Id, Name, Country, EMail, Age, ReportsTo}
psobject    MemberSet    psobject {BaseObject, Members, Properties, Methods, ImmediateBaseObject, TypeNames, get_BaseObject, get_Members, get_Properties, get_Methods, get_ImmediateBaseObject, get_TypeNames, ToString, Copy, CompareTo, Equals, GetHash…
Equals      Method       bool Equals(System.Object obj)
GetHashCode Method       int GetHashCode()
GetType     Method       type GetType()
ToString    Method       string ToString()
...         NoteProperty ...

PSObject 属性包含 Properties 属性,该属性包含子属性以及 NameValue每个 $Stats 属性。
换句话说,要找出第一个 $Stats[0] 属性(又名第一列)的名称,您可以执行以下操作:

$Stats[0].PSObject.Properties.Name[0]
ColumnHeader

并检索该列的所有值:

$ColumnName = $Stats[0].PSObject.Properties.Name[0]
$Stats.$ColumnName

或者:

$Stats.($Stats[0].PSObject.Properties.Name[0])

关于powershell - 如何使用powershell读取CSV文件的第一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69089645/

相关文章:

wcf - 使用 PowerShell 的 New-WebServiceProxy 访问 net.tcp 端点

python - 使用 python csv 阅读器忽略 "blank"(未填充)行

ruby-on-rails - 在 ruby​​ 中遍历 CSV

java - 从 sqlback 格式的文件中提取数据以转换为 CSV

sql-server - SSIS:在 Excel 中打开的 CSV 提取 - 一些字符串值显示为日期

python - Firestore不导入Blob而是导入字符串值

c# - 如何调用我的 dll 并在 powershell 脚本中使用它

c# - .NET 枚举类型实际上是可变值类型吗?

powershell - 获取磁盘 IO 性能计数器

python - 这是否意味着 pip install 的 python 路径不正确?如果是这样,我如何知道正确的道路,然后如何改变它?