使用PowerShell显示SQL查询的结果

时间:2014-07-28 05:08:36

标签: powershell

我已经提供了一个PS脚本,它调用一个简单的SQL查询,显示结果并发出声音......据说。这是为了进入BI小工具而设计的,它只显示PS脚本中的数字。

查询中的正确计数未显示,并且由于某种原因卡在2上。

$sql = "<simple COUNT query>"

$items = invoke-sql -server "<server name>" -database "<db name>" -user "<uname>" -password "<password>" -sql $sql -timeout 180

$day = (get-date).DayOfWeek.Value__

# $items[0] = 10
if ($day -ge 1 -and $day -le 5)
{

    $date = Get-Date

    if ($date.Hour -ge 8 -and $date.Hour -lt 17)
    {
        if ($items[0] -gt 0)
        {
            $voice = New-Object -Com sapi.spvoice
            $voice.Rate = 1
            $voice.volume = 100

            Do {
                Start-Sleep -s 1
                $Counter = Get-Date
            } 
            Until ($Counter.Second/15 -is [int])

            if ($items[0] -gt 1)
            {
                [void]$voice.Speak("New Ticket.")
            }
            else
            {
                [void]$voice.Speak("New Ticket.")
            }

        }
    }
}
Write-Output $items.Count

SQL组件我没有问题,并且在运行时肯定能正常工作,但我没有使用PowerShell脚本的经验,所以有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

$Items.count将为您提供结果集中的记录数。从技术上讲,这些是DataRow个对象,而$ItemsDataTable。如果要返回多行,则需要确定要显示的行。

基本上,查询返回的DataTable的方法是:

($Items[x]).Column

其中x是要返回的0索引行,Column是要返回的列的名称。因此,如果您想要使用第二行的ItemCount列,请使用:

($Items[1]).ItemCount