使用PowerShell显示SQL查询的结果
我已经提供了一个PS脚本,它调用一个简单的SQL查询,显示结果并播放语音。。。据推测这是为了进入一个BI小工具,它只显示PS脚本中的一个数字 查询中的正确计数未显示,并且由于某种原因卡在2上使用PowerShell显示SQL查询的结果,powershell,Powershell,我已经提供了一个PS脚本,它调用一个简单的SQL查询,显示结果并播放语音。。。据推测这是为了进入一个BI小工具,它只显示PS脚本中的一个数字 查询中的正确计数未显示,并且由于某种原因卡在2上 $sql = "<simple COUNT query>" $items = invoke-sql -server "<server name>" -database "<db name>" -user "<uname>" -password "<pa
$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=“”
$items=invoke sql-server”“-database”“-user”“-password”“-sql$sql-timeout 180
$day=(获取日期).DayOfWeek.Value__
#$items[0]=10
如果($day-ge 1-和$day-le 5)
{
$date=获取日期
如果($date.Hour-ge 8-和$date.Hour-lt 17)
{
如果($items[0]-gt 0)
{
$voice=新对象-Com sapi.spvoice
$voice.Rate=1
$voice.volume=100
做{
开始睡眠-s1
$Counter=获取日期
}
直到($Counter.Second/15-is[int])
如果($items[0]-gt 1)
{
[void]$voice.Speak(“新票”)
}
其他的
{
[void]$voice.Speak(“新票”)
}
}
}
}
写入输出$items.Count
我使用的SQL组件没有问题,在运行时肯定可以正常工作,但我没有PowerShell脚本编写经验,因此请有人提供帮助?
$Items.count
将为您提供结果集中的记录数。从技术上讲,这些是对象,$Items
是一个。如果要返回多行,则需要确定要显示的行
查询返回的数据表的方法基本上是:
($Items[x]).Column
其中,x
是要返回的0索引行,Column
是要返回的列的名称。因此,如果需要第二行的ItemCount
列,可以使用:
($Items[1]).ItemCount
如果您只是对查询的计数值感兴趣,可能应该使用$items.count而不是$items[0]。是否尝试提升并重新使用Com对象?可能运行脚本并在$Errors
中查找任何隐藏的问题(在运行之前,请不要忘记执行$Error.Clear()
),以清除记录)?我刚刚将$items[0]的所有实例更改为$items.Count,并从SQL查询中删除了该计数,以便显示所有结果。PS脚本现在正在计算我假设的每一行。它似乎确实起作用了。。。这是一个可以接受的解决方案吗?