Powershell acessa um único valor em uma tabela

3

isso deve ser realmente fácil, mas não consigo encontrar um jeito fácil.

Por exemplo, em Powershell e estou usando um arquivo CSV, que é usado para procurar alguns dados de configuração com base em um ID. Aqui está o que eu tenho agora, funciona, mas tem que haver uma maneira melhor.

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

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

Se eu usar format-table etc, sempre recebo o cabeçalho da coluna, que eu teria que cortar.

Mais uma vez, isso tem que ser muito fácil e isso não é um show stopper. Mas tem que haver uma maneira melhor de obter apenas os dados de uma tabela sem o cabeçalho da coluna.

    
por falkaholic 25.11.2009 / 00:42

2 respostas

3

Não tenho certeza se isso ajuda, mas você pode carregar o arquivo csv em uma matriz e, em seguida, usar índices para acessar as linhas individuais e, para cada linha, usar o nome da coluna para acessar a célula individual.

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

Basta alterar 'ColA' para o nome da coluna e lembrar que as linhas são 0 indexadas.

    
por 30.11.2009 / 13:05
1

Eu sei de duas maneiras.

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

$configList | where {$_.id -eq $id} | select -ExpandProperty configData

(Em termos de estilo, embora eu evite aliases em scripts para maior clareza, estou bem com where , foreach e select , pois não acho que -Object acrescente nada.)

    
por 03.07.2010 / 06:48

Tags