首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Powershell、Invoke-SqlCmd和刷新输出

Powershell、Invoke-SqlCmd和刷新输出
EN

Stack Overflow用户
提问于 2019-08-23 13:31:50
回答 1查看 250关注 0票数 0

如何在Powershell中强制调用-SqlCmd以刷新其输出?在https://github.com/PowerShell/PowerShell/issues/3060上问的问题基本上是一样的,人们认为这是SQL的问题,而"SQL说这是默认Powershell输出的问题,而不是他们的代码“。

下面是一个简单的演示:

代码语言:javascript
复制
Write-Host "Run 1"
Invoke-Sqlcmd -Query "SELECT GETDATE() AS CurrentTime;"
#Read-Host -Prompt "press a key..."

Write-Host "Run 2"
Invoke-Sqlcmd -Query "SELECT GETDATE() AS CurrentTime;"

输出将如下所示:

代码语言:javascript
复制
Run 1

Run 2
CurrentTime         
-----------         
8/23/2019 9:24:44 AM
8/23/2019 9:24:44 AM

而我希望第一个输出在"Run 1“之后和"Run 2”之前。如果注释掉Read-HostInvoke-Sqlcmd就会被分隔开,但仍然不像我所期望的那样:

代码语言:javascript
复制
Run 1

press a key...: 
CurrentTime         
-----------         
8/23/2019 9:22:28 AM

Run 2
8/23/2019 9:22:32 AM

那么,如何在Powershell中强制调用-SqlCmd来刷新其输出呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-23 14:24:50

请查看修改后的脚本如下:

代码语言:javascript
复制
$run1 = Invoke-Sqlcmd -Query "SELECT GETDATE() AS CurrentTime;" | Out-String;
Write-Host "Run 1 is $run1"
#Read-Host -Prompt "press a key..."
Start-Sleep 2  #To simulate different timing
$run2 = Invoke-Sqlcmd -Query "SELECT GETDATE() AS CurrentTime;" | Out-String
Write-Host "Run 2 is $run2"

输出将是,

代码语言:javascript
复制
Run 1 is 
CurrentTime          
-----------          
8/23/2019 11:51:47 AM



Run 2 is 
CurrentTime          
-----------          
8/23/2019 11:51:49 AM
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57627427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档