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

新手上路,请多包涵

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

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

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

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

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

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

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

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

我尝试在循环中使用 $user_info.Item[0] ,但没有返回任何内容。

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

原文由 cyberbemon 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 594
2 个回答

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

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

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

 foreach($row in $table)
{
    $row.Item(0)
}

原文由 Mathias R. Jessen 发布,翻译遵循 CC BY-SA 4.0 许可协议

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

在此处输入图像描述

原文由 nyagolova 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进