我有一个执行sql命令并返回ID号列表的powershell脚本。
当我遍历列表时,这就是它返回的内容。
bindToController
我尝试将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
,但不返回任何内容。
如何从列表中仅提取数字?
答案 0 :(得分:6)
Item
是参数化属性,而非您可以编入索引的列表:
foreach($row in $table)
{
$row.Item("GroupID")
}
或(假设“GroupID”是第一列):
foreach($row in $table)
{
$row.Item(0)
}
答案 1 :(得分:4)
您也可以使用ItemArray。打印整行,而Item(index)打印来自索引单元格的值。
答案 2 :(得分:1)
假设列名称为GroupID
$sql = "SELECT [GroupID] FROM theTable"
$table = Invoke-SQLCmd -Query $sql -ServerInstance $sqlServerInstance -Database $database -OutputAs DataRows
foreach($user_info in $table)
{
$user_info.GroupID
}
或
foreach($user_info in $table.GroupID)
{
$user_info
}