0

我有一个 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

一切正常,但看起来很糟糕。关于如何解决 PR​​INT 语句的输出格式和 sql 的错误消息的任何想法?

4

0 回答 0