次のコードを使用して osql コマンドを実行し、その出力 (2 行が影響を受けるなど) を取得していますが、終了しません。何が足りないのか教えてください。
string sqlFilePath = Helper.GetFilePath(sqlFileName, Environment.CurrentDirectory);
Process p = new Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.Arguments = @"osql -E -S @Server -d @Database -T -n -i ""@SqlFile"""
.Replace("@Server", ConfigurationManager.AppSettings["Server"])
.Replace("@Database", Path.GetFileNameWithoutExtension(DB))
.Replace("@SqlFile", sqlFilePath);
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.Start();
string output = p.StandardOutput.ReadToEnd();
p.WaitForExit();