C#cmd命令在Windows 7上不起作用

时间:2017-04-08 14:04:11

标签: c# cmd windows-7 windows-10 sqlcmd

我尝试使用命令行来避免使用Windows 7和LocalDB 2016的某些问题。 这是代码:

Process cmd = new Process();

ProcessStartInfo infocmd = new ProcessStartInfo();
// infocmd.CreateNoWindow = true; (using when code is ok for win 7)
infocmd.Verb = "runas";
infocmd.FileName = "cmd";
infocmd.RedirectStandardInput = true;
infocmd.UseShellExecute = false;

cmd.StartInfo = infocmd;
cmd.Start();

using (StreamWriter sw = cmd.StandardInput)
{
    sw.WriteLine("sqllocaldb stop localedb");
    sw.WriteLine("sqllocaldb delete localedb");
    sw.WriteLine("sqllocaldb create localedb");
    sw.WriteLine("sqllocaldb start localedb");
}

cmd.WaitForExit();

一切正常在Windows 10(我用来开发的操作系统)中正常工作但是当我将程序移动到Windows 7时,cmd.exe启动,但它会在几毫秒之后关闭(没有错误且没有异常)并且未创建localedb实例。

如果在Windows 7上手动键入sw.WriteLine中的代码,它可以正常工作,因此LocalDB 2016没有问题。

有什么方法可以解决这个问题吗?

要编辑的代码部分可以与Windows 7(以及Windows 10)一起使用吗?

1 个答案:

答案 0 :(得分:0)

穿戴 cmd.ReadKey();

代码末尾。它会在关闭cmd控制台之前等待一个键。

修改

将cmd替换为控制台(在Visual Studio中使用ctrl + H查找并全部替换)

适用于Windows 7及更高版本。