gpt4 book ai didi

powershell - 如何从 PowerShell 数据表中获取第一行

转载 作者:行者123 更新时间:2023-12-05 09:07:16 25 4
gpt4 key购买 nike

在PowerShell中,如果$dt是数据表,我习惯用foreach()来逐行操作。例如……

foreach ($tmpRow in $dt) {
Write-Host $tmpRow.blabla
}

我只想获取第一行(n 列)。我可以引入一个计数器 $i 并在第一次迭代时打破 foreach 循环,但这看起来很笨拙。有没有更直接的方法来实现这一点?

最佳答案

  • 对于已经在内存中的集合(数组),使用索引,即[0]:

    • 注意:通常$dt[0] 应该足够,但在这种情况下 索引必须应用于 .Rows 属性,如 Theo建议:

      • $dt.Rows[0].blabla
    • 假设 PowerShell 自动枚举一个System.Data.DataTable通过枚举 System.Data.DataRow存储在其 .Rows 属性中的实例 - 在管道和 foreach 循环中,如在您的代码中 - 需要指定 .Rows 明确地索引令人惊讶

      • $dt 包含一个 System.Data.DataTable 实例,$dt[0] 实际上与 相同$dt 本身,因为在此上下文中的 PowerShell 将 $dt 视为单个对象,并且为了 的利益通常支持索引到此类单个对象>统一处理标量和数组 - 参见this answer了解背景信息。
  • 对于命令输出,使用Select-Object -First 1 .使用 Invoke-SqlCmd 的示例

    • (Invoke-SqlCommand ... | Select-Object -First 1).blabla

    • 注意:由于 Invoke-SqlCommand 默认输出单个 System.Data.DataRow 实例(一个接一个),您可以直接访问属性 .blabla 在结果上。

    • 使用 Select-Object -First 1 的优点是使管道短路并在第一个输出后返回对象已被接收,避免了检索更多对象的需要。

关于powershell - 如何从 PowerShell 数据表中获取第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65183624/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com