Extraiga datos de System.Data.DataRow en PowerShell

Resuelto cyberbemon asked hace 8 años • 3 respuestas

Tengo un script de PowerShell que ejecuta un comando SQL y devuelve una lista de números de identificación.

Cuando repito la lista, esto es lo que devuelve.

System.Data.DataRow
System.Data.DataRow
System.Data.DataRow
System.Data.DataRow
System.Data.DataRow
System.Data.DataRow

Intenté agregar Out-Stringa mi lista,

$q_result = $db.ExecuteWithResults($int_cmd2)
$table = $q_result.Tables[0] | Out-String

foreach ($user_info in $table)
{
    write-host $user_info 
}

pero eso devuelve una lista de números mal formateada, todo está tabulado en el extremo derecho:

                                                                                                      GroupID
                                                                                                      -------------
                                                                                                                381
                                                                                                                382
                                                                                                                383
                                                                                                                384
                                                                                                                385
                                                                                                                386

Intenté usar, $user_info.Item[0]en el bucle, pero no devuelve nada.

¿Cómo puedo extraer solo los números de la lista?

cyberbemon avatar Aug 30 '16 17:08 cyberbemon
Aceptado

También puedes usar ItemArray . Imprime la fila completa, mientras que Item(index) imprime los valores de la celda indexada.

ingrese la descripción de la imagen aquí

nyagolova avatar Feb 28 '2019 07:02 nyagolova

Itemes una propiedad parametrizada , no una lista en la que pueda indexar:

foreach($row in $table)
{
    $row.Item("GroupID")
}

o (asumiendo que "GroupID" es la primera columna):

foreach($row in $table)
{
    $row.Item(0)
}
Mathias R. Jessen avatar Aug 30 '2016 10:08 Mathias R. Jessen