我目前正在尝试通过命令提示符执行基本的mysqlcheck。mysql.exe文件本身位于工作目录指向的bin中,以便通过cmd将其用作命令的一部分。
现在,当我打开shell时,我被卡在了它停止的地方。它不会继续初始化标准输入。
{
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();
}发布于 2013-07-15 06:17:19
在可执行文件的名称之前添加/C选项
proc.StartInfo.Arguments = @"/C Mysqlcheck.exe -u root -c -ppassword database";如果没有这个参数,cmd shell不会执行命令,但会立即退出。
您可以看到CMD.exe的其他参数,打开命令提示符并输入CMD /?
https://stackoverflow.com/questions/17644348
复制相似问题