我正在尝试使用 PowerShell 脚本SqlPackage.exe
来更新数据库。问题是它产生了一个新的 CMD 窗口,我无法有效地捕获输出。
这是我的脚本:
&$SqlPackage "/Action:Script", "/SourceFile:$($Environment.PackageFile)", "/Profile:$($Environment.PublishProfile)", "/OutputPath:$($Environment.ScriptFile)";
哪里SqlPackage = "SQLPackage\SqlPackage.exe";
。
奇怪的是,当我在 Windows 2008 R2 Web 服务器上执行脚本时,输出与 PowerShell 输出是内联的,这正是我想要的。在我的 Windows 7 机器上,它会生成一个新的 CMD 窗口。
如何始终将输出路由到 PowerShell 窗口,或者至少通过管道传输到另一个文件?
编辑
等待过程完成的完整解决方案:
$p = Start-Process $SqlPackage -ArgumentList @("/Action:Script", "/SourceFile:$($Environment.PackageFile)", "/Profile:$($Environment.PublishProfile)", "/OutputPath:$($Environment.ScriptFile)") -NoNewWindow -Wait -Passthru
$p.WaitForExit()