【问题标题】:What is the invoke-sqlcmd verbose output to file syntax?什么是文件语法的 invoke-sqlcmd 详细输出?
【发布时间】:2015-07-31 11:46:51
【问题描述】:

我目前有:

(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

【问题讨论】:

  • 我做错了什么?没有给$OutFileName一个值。问题是,为什么要写入包含正在执行的 sql 命令的文件?
  • 很抱歉,这只是我输出的部分,请假设所有变量都已正确分配。

标签: powershell powershell-3.0 sqlcmd verbose


【解决方案1】:

我最终得到了

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 调用。由于某种原因导致我无法使用“*>”或任何与“>”组合的字符。

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

【讨论】:

    【解决方案2】:

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

    (...) 4> $OutFileName
    

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

    如果你想结合成功和详细的输出流。

    更多信息请参见about_Redirection

    【讨论】:

    • 尝试两种建议的解决方案我得到以下错误:4 : Unexpected token '4' in expression or statement. + CategoryInfo : ParserError: (4:String) [], ParseException + FullyQualifiedErrorId : UnexpectedToken
    猜你喜欢
    • 1970-01-01
    • 2019-06-21
    • 2020-04-18
    • 2011-07-01
    • 2010-11-18
    • 2021-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多