Powershell 访问表中的单个值

Powershell 访问表中的单个值

这应该是一个非常简单的问题,但我似乎找不到简单的方法。

例如,在 Powershell 中使用 CSV 文件,然后使用该文件根据 ID 查找一些配置数据。这是我现在拥有的,它可以工作,但一定有更好的方法。

$configList = import-csv "C:\myconfig.csv"
$id = "5001"

$configList | where-object {$_.id -eq $id} | foreach-object{ $configData = $_.configData}

如果使用格式表等,我总是会得到列标题,然后我必须将其截断。

再次强调,这确实非常简单,而且不会造成太大影响。但肯定有更好的方法可以从没有列标题的表格中获取数据。

答案1

不确定这是否有帮助,但您可以将 csv 文件加载到数组中,然后使用索引访问各个行,并且对于每一行,您可以使用列名访问各个单元格。

$a = @(Import-CSV C:\myconfig.csv)
$a[0].ColA

只需将“ColA”更改为列名,并记住行是 0 索引。

答案2

我知道两种方法。

$configList | 其中 {$_.id -eq $id} | foreach { $_.configData }

$configList | 其中 {$_.id -eq $id} | 选择 -ExpandProperty configData

(从风格上讲,尽管为了清晰起见我避免在脚本中使用别名,但我对whereforeach和没意见select,因为我认为这不会-Object增加任何内容。)

答案3

| Format-Table -HideTableHeaders

这是最简单的方法。

相关内容