Powershell

如何將多個invoke-sqlcmd詳細輸出記錄到單個日誌文件中,同時通過標誌顯示/不顯示它們到prowershell提示符中

  • January 14, 2021

假設我們有多個 invoke-sqlcmd 語句,如下所示:

invoke-sqlcmd -Query "PRINT 'Hello World 1'" -ServerInstance Server\SQL2017 -Database abc -Verbose
invoke-sqlcmd -Query "PRINT 'Hello World 2'" -ServerInstance Server\SQL2017 -Database abc -Verbose
invoke-sqlcmd -Query "PRINT 'Hello World 3'" -ServerInstance Server\SQL2017 -Database abc -Verbose

我想做以下事情:

  1. 我想將多個 invoke-sqlcmd 命令的詳細輸出語句記錄到單個日誌文件中
  2. 除了登錄日誌文件,我們還可以在 powershell 視窗中顯示詳細輸出嗎?另外,我們可以通過任何標誌來管理它以在 powershell 視窗中顯示輸出嗎?

請建議是否可能。

對於第一個問題,我同意@Kin Shah 的上述文章。對於第二個問題,這意味著如果我們想將詳細消息記錄到日誌文件和 PowerShell 視窗中,那麼我們可以使用 tee-object 如下所示:

invoke-sqlcmd -Query "PRINT 'Hello World'" -ServerInstance WL357044\SQL2017 -Database abc -Verbose *>&1| tee-object -FilePath test.log -Append

對於 1,您可以使用PowerShell 重定向運算符。根據Redirectable output streams,steam 4 是您想要的 Verbose Stream。

呼叫-sqlcmd ….-verbose 4>>“D:\temp\yourlogfile.log”

以上會將您所有的 invoke-sqlcmd 附加到一個日誌文件中"D:\temp\yourlogfile.log"

我不清楚你的問題第 2 部分。

引用自:https://dba.stackexchange.com/questions/283059