SqlPackage.exe
データベースを更新するために実行しようとしている PowerShell スクリプトを使用しています。問題は、新しい 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()