我们正在从调用osql的批处理文件转移到使用Invoke-Sqlcmd cmdlet的Powershell脚本。
有谁知道在后一种情况下将输出重定向到在osql中使用-o标志的等效步骤是什么?我们有一些后处理步骤,这些步骤将查看osql输出文件并采取相应的措施(如果这些日志大于X字节,则报告错误)。如果Invoke-Sqlcmd可以在输入相同的SQL命令的情况下复制相同的输出信息,我将非常喜欢它。
现在,我打算在脚本中调用Invoke-Sqlcmd <...> | Out-file -filepath myLog.log
。有人知道这是确定的还是合理的?
最佳答案
从cmdlet本身的文档中:
Invoke-Sqlcmd -InputFile "C:\MyFolder\TestSQLCmd.sql" | Out-File -filePath "C:\MyFolder\TestSQLCmd.rpt"
上面是调用Invoke-Sqlcmd,指定输入文件并将输出管道传输到文件的示例。这类似于使用-i和-o选项指定sqlcmd。
http://technet.microsoft.com/en-us/library/cc281720.aspx
关于sql-server - osql vs Invoke-Sqlcmd-重定向后者的输出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12183626/