invoke-sqlcmd 到文件语法的详细输出是什么?

What is the invoke-sqlcmd verbose output to file syntax?

我目前有:

(invoke-sqlcmd -inputfile (Join-Path $FileDirectory $FileName) -ServerInstance $ServerName -verbose) > $OutFileName

我得到的输出:

VERBOSE: Changed database context to 'BLUELABEL'

我正在尝试使用详细输出写入由 Join-Path 函数指定的文件。

我做错了什么?

(使用 PowerShell V3)

我确实找到了这个问题的答案,但它似乎有所不同,我似乎无法应用相同的想法:Powershell Invoke-Sqlcmd capture verbose output

详细输出与常规输出写入不同的流。 > 运算符仅重定向成功输出流。要重定向您需要的详细输出流

(...) 4> $OutFileName

(...) 4>&1 > $OutFileName

如果您想合并成功和详细输出流。

有关详细信息,请参阅 about_Redirection

我最终得到了

sqlps -Command "&{invoke-sqlcmd -inputfile (Join-Path $PSScriptRoot $file) -ServerInstance $server -verbose}" *> "$PSScriptRoot\SqlLog_$file`_$(get-date -f yyyy-MM-dd-hh-mm-ss).txt"

上班。

最初我调用了另一个脚本并将 3 个变量传递给它,然后 运行 invoke-sqlcmd 调用。出于某种原因导致我无法使用“*>”或任何与“>”组合的字符。

也许其他人可以详细说明为什么会这样。