【发布时间】:2011-11-10 23:36:30
【问题描述】:
我正在尝试从本地已安装的 SQL Server 实例中获取所有服务器名称。 我知道有一个“sqlcmd -L”命令在cmd中返回这个列表。 以下是我用来运行 cmd 的代码。
Process sqlServers = new Process();
ProcessStartInfo psi = new ProcessStartInfo();
psi.RedirectStandardOutput = true;
psi.CreateNoWindow = false; (DEBUGGING PURPOSES)
psi.FileName = "cmd";
psi.Arguments = @"sqlcmd -L";
psi.UseShellExecute = false;
sqlServers = Process.Start(psi);
string serverList = sqlServers.StandardOutput.ReadToEnd();
sqlServers.WaitForExit(30000);
我已经在程序的另一部分使用了这个代码库,它运行良好。虽然我没有读回一个值。
谁能帮我找出为什么当我运行这段代码时会打开一个 cmd 窗口,但没有运行任何参数,也没有返回任何内容。
【问题讨论】:
-
我希望
sqlcmd是程序,-L是参数。是不是希望在不指定路径的情况下免费获得sqlcmd? -
您忘记使用
/c标志。见stackoverflow.com/questions/3616010/… -
/c 将在其工作时插入其中。但这就是问题所在:)柯克的想法是正确的。谢谢。很快就得到了回复。