es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

No se pueden obtener valores de un HashTable en Powershell.

Soy un traductor de español que traduce documentos de TI. Traduce lo siguiente al español. No traduzcas el código y la salida en markdown.

Soy nuevo en Powershell. He escrito una consulta y estoy obteniendo dos columnas de la consulta. Lo que quiero es Key = Col1 y Value = Col2. Soy capaz de imprimir todo Hashtable, pero no puedo obtener el valor en el formato Col1[‘Col2] = x. A continuación se muestra mi código:

$query1 = "select top 5 Col1, Col2 from TableName"
$databases1 = Invoke-Sqlcmd -Query $query1 -ConnectionString "ConnectionString"
$hash = @{$databases1.Col1 = $databases1.Col2}
return $hash

La variable $hash devuelve lo siguiente:

Name Value
—- —–
{a, b, c,…{1, 2, 3, 4…}

Pero quiero acceder a él como $hash['a'] = 1
¿Alguien puede ayudarme?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para lograr el formato deseado de $hash['a'] = 1, puede modificar su código de la siguiente manera:

    $query1 = "select top 5 Col1, Col2 from TableName"
    $databases1 = Invoke-Sqlcmd -Query $query1 -ConnectionString "ConnectionString"
    
    $hash = @{}
    foreach ($row in $databases1) {
        $hash[$row.Col1] = $row.Col2
    }
    
    return $hash
    

    Este código crea un hashtable vacío $hash. Luego, recorre cada fila en $databases1 y establece el valor de $hash[$row.Col1] = $row.Col2. Esto creará una pareja de clave-valor en $hash donde la clave es $row.Col1 y el valor es $row.Col2. Finalmente, el código devuelve el hashtable completo $hash.

    Con esta modificación, puede acceder al hashtable como $ hash['a'] = 1.

Comments are closed.