在Powershell中从System.Data.DataRow提取数据

cyb*_*mon 7 sql powershell

我有一个执行SQL命令并返回ID号列表的Powershell脚本。

当我遍历列表时,这就是返回的内容。

System.Data.DataRow
System.Data.DataRow
System.Data.DataRow
System.Data.DataRow
System.Data.DataRow
System.Data.DataRow
Run Code Online (Sandbox Code Playgroud)

我尝试添加Out-String到列表中

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

foreach ($user_info in $table)
{
    write-host $user_info 
}
Run Code Online (Sandbox Code Playgroud)

但这会返回格式不正确的数字列表,所有内容都在最右侧显示。见下文。

                                                                                                      GroupID
                                                                                                      -------------
                                                                                                                381
                                                                                                                382
                                                                                                                383
                                                                                                                384
                                                                                                                385
                                                                                                                386
Run Code Online (Sandbox Code Playgroud)

我尝试使用 $user_info.Item[0]在循环中使用,但是什么也没返回。

如何仅从列表中提取数字?

Mat*_*sen 8

Item参数化的属性,不是可以索引到的列表:

foreach($row in $table)
{
    $row.Item("GroupID")
}
Run Code Online (Sandbox Code Playgroud)

或(假设“ GroupID”是第一列):

foreach($row in $table)
{
    $row.Item(0)
}
Run Code Online (Sandbox Code Playgroud)


Nya*_*ova 7

您也可以使用ItemArray。打印整行,而Item(index)打印来自索引单元格的值。

在此处输入图片说明