2

我目前正在尝试通过命令提示符进行基本的 mysqlcheck。mysql.exe 文件本身位于工作目录指向的 bin 中,以通过 cmd 用作命令的一部分。

现在我被困在打开外壳时它停止的地方。它不会继续启动标准输入。

   {
        Process proc = new Process();
        proc.StartInfo.FileName = Path.Combine(Environment.SystemDirectory, "cmd.exe");
        proc.StartInfo.WorkingDirectory = @"C:\Program Files (x86)\MySQL\bin";

        proc.StartInfo.UseShellExecute = false;
        proc.StartInfo.RedirectStandardOutput = true;
        proc.StartInfo.RedirectStandardInput = true;
        proc.StartInfo.Arguments = @"Mysqlcheck -u root -c -ppassword database";

        proc.Start();
        string output = proc.StandardOutput.ReadToEnd();            
       proc.StandardInput.WriteLine("Mysqlcheck -u root -c -ppassword database");
        proc.WaitForExit();


    }
4

1 回答 1

3

在可执行文件的名称前添加 /C 选项

  proc.StartInfo.Arguments = @"/C Mysqlcheck.exe -u root -c -ppassword database";

如果没有这个参数,cmd shell 不会执行命令而是立即退出。
您可以看到 CMD.exe 打开命令提示符并键入 CMD /? 的其他参数

于 2013-07-14T22:17:19.487 回答