这应该是一个非常简单的问题,但我似乎找不到简单的方法。
例如,在 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
(从风格上讲,尽管为了清晰起见我避免在脚本中使用别名,但我对where
、foreach
和没意见select
,因为我认为这不会-Object
增加任何内容。)
答案3
| Format-Table -HideTableHeaders
这是最简单的方法。