我正在自动化流程,该流程将使用PowerShell脚本和TSQL电子邮件发送邮件为开发人员处理刷新 我唯一想将还原的输出放在电子邮件正文中。 当我使用*>&1通过restore命令运行Invoke-SQlcmd时,其输出为
23%已处理。 46%已处理。 69%已处理。 92%已处理。 100%已处理。已处理552页的数据库'SaveStuff',文件1上的文件'SaveStuff'。已处理2页的数据库'SaveStuff',文件1上的文件'SaveStuff_log'。RESTORE DATABASE在0.564秒(7.667 MB /秒)内成功处理了554页。
此代码的问题在于它包含“'SaveStuff'周围的类似符号,它使用sql sendmail弄乱了T-SQL。
我通过使用replace解决了这个问题。暂时有效。
主要目标是show输出单个行而不是一个长行。
23%已处理。
46%已处理。
69%已处理。
92%已处理。
已处理100%。
为数据库SaveStuff处理了552页,文件1上的文件SaveStuff。
已处理2页的数据库SaveStuff,文件1上的文件SaveStuff_log。
RESTORE DATABASE在0.564秒(7.667 MB /秒)内成功处理了554页。
任何建议
$RestoreResults = "23 percent processed. 46 percent processed. 69 percent processed. 92 percent processed. 100 percent processed. Processed 552 pages for database 'SaveStuff', file 'SaveStuff' on file 1. Processed 2 pages for database 'SaveStuff', file 'SaveStuff_log' on file 1. RESTORE DATABASE successfully processed 554 pages in 0.564 seconds (7.667 MB/sec)."
$Restore = $RestoreResults -replace "'", " "
Write-Host $Restore
$Restore = $Restore -replace '. ', '.`n'
Write-Host $Restore
答案 0 :(得分:0)
在您的RESTORE DATABASE命令中添加“ STATS = 100 ”以消除这些不必要的还原百分比。