Powershell accede a un único valor en una tabla

3

Esto debería ser realmente fácil, pero parece que no puedo encontrar una manera fácil.

Por ejemplo, en Powershell y estoy usando un archivo CSV, que luego se usa para buscar algunos datos de configuración basados ​​en una ID. Esto es lo que tengo ahora, funciona, pero tiene que haber una mejor manera.

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

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

Si uso format-table, etc., siempre obtengo el encabezado de columna, que luego tendría que cortar.

Nuevamente, esto tiene que ser realmente fácil y esto no es un obstáculo para el espectáculo. Pero tiene que haber una mejor manera de obtener solo los datos de una tabla sin el encabezado de columna.

falkaholic
fuente

Respuestas:

3

No estoy seguro de si esto ayuda, pero puede cargar el archivo csv en una matriz y luego usar índices para acceder a las filas individuales y para cada fila puede usar el nombre de la columna para acceder a la celda individual.

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

Simplemente cambie 'ColA' por el nombre de su columna y recuerde que las filas están indexadas en 0.

Alan
fuente
1

Sé de dos maneras.

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

$ configList | donde {$ _. id -eq $ id} | seleccione -ExpandProperty configData

(En cuanto al estilo, aunque evito alias en los guiones para mayor claridad, estoy bien con where, foreachy select, como no creo que -Objectaporte nada.)

Jay Bazuzi
fuente
-1
| Format-Table -HideTableHeaders

Esa es la forma más fácil.

Miguel
fuente