我有一个 Powershell 脚本,它运行一些 sql 文件来安装表/存储过程。在 PS 脚本中,我在每个文件运行之前将一些文本输出到日志文件,然后使用 -Verbose 对 sql 文件执行 Invoke-SqlCmd,并将所有输出重定向到同一个日志文件。这一切都很好,来自 PS 脚本的输出看起来很正常,但是来自 sql 文件的任何输出(通过 PRINT 或来自 DDL 中的错误)都带有双倍间距的字母。以下是日志文件的输出示例:
--- 部署 MyTable ----
--- 部署 MyTable.sql...
--- D roppingtabledbo 。表
--- 表。MYTABLE 成功创建
这是我正在运行的代码:
Clear-Host
$sqlServer = Read-Host -Prompt "Enter Server"
$sqlServer
$db = Read-Host -Prompt "Enter Database"
$db
$logFolder = Read-Host -Prompt "Enter log file folder"
$logFolder
$logFileName = "MyTable.txt"
rm $logFolder\$logFileName -ErrorAction Ignore
Add-Content $logFolder\$logFileName "#############################################"
Add-Content $logFolder\$logFileName "### Deploying MyTable ####"
Add-Content $logFolder\$logFileName "#############################################"
Add-Content $logFolder\$logFileName " "
Add-Content $logFolder\$logFileName "Deploying MyTable.sql..."
Invoke-Sqlcmd -ServerInstance $sqlServer -Database $db -InputFile "MyTable.sql" -Verbose *>> $logFolder\$logFileName
一切正常,但看起来很糟糕。关于如何解决 PRINT 语句的输出格式和 sql 的错误消息的任何想法?