Я пытаюсь запустить несколько команд в одном экземпляре процесса, и то, что у меня есть, работает, но оно зависает и ничего не делает после 7-й или 8-й команды в потоковом писателе.
Вот мой код:
Process p = new Process();
ProcessStartInfo info = new ProcessStartInfo();
info.FileName = "cmd.exe";
info.UseShellExecute = false;
info.RedirectStandardInput = true;
info.RedirectStandardOutput = true;
info.RedirectStandardError = true;
info.CreateNoWindow = true;
p.StartInfo = info;
p.Start();
using (StreamWriter sw = p.StandardInput)
{
sw.WriteLine("copy /b updates\\EDB-master\\tables\\a*.sql a_updates.sql");
sw.WriteLine("copy /b updates\\EDB-master\\tables\\b*.sql b_updates.sql");
sw.WriteLine("copy /b updates\\EDB-master\\tables\\c*.sql c_updates.sql");
sw.WriteLine("copy /b updates\\EDB-master\\tables\\d*.sql d_updates.sql");
sw.WriteLine("copy /b updates\\EDB-master\\tables\\e*.sql e_updates.sql");
sw.WriteLine("copy /b updates\\EDB-master\\tables\\f*.sql f_updates.sql");
sw.WriteLine("copy /b updates\\EDB-master\\tables\\g*.sql g_updates.sql");
sw.WriteLine("copy /b updates\\EDB-master\\tables\\i*.sql i_updates.sql");
sw.WriteLine("copy /b updates\\EDB-master\\tables\\l*.sql l_updates.sql");
sw.WriteLine("copy /b updates\\EDB-master\\tables\\m*.sql m_updates.sql");
sw.WriteLine("copy /b updates\\EDB-master\\tables\\n*.sql n_updates.sql");
sw.WriteLine("copy /b updates\\EDB-master\\tables\\o*.sql o_updates.sql");
sw.WriteLine("copy /b updates\\EDB-master\\tables\\p*.sql p_updates.sql");
sw.WriteLine("copy /b updates\\EDB-master\\tables\\q*.sql q_updates.sql");
sw.WriteLine("copy /b updates\\EDB-master\\tables\\r*.sql r_updates.sql");
sw.WriteLine("copy /b updates\\EDB-master\\tables\\s*.sql s_updates.sql");
sw.WriteLine("copy /b updates\\EDB-master\\tables\\t*.sql t_updates.sql");
sw.WriteLine("copy /b updates\\EDB-master\\tables\\v*.sql v_updates.sql");
sw.WriteLine("copy /b updates\\EDB-master\\tables\\w*.sql w_updates.sql");
}
p.WaitForExit();
Я знаю, что могу записать все файлы SQL только в один файл, но причина, по которой я просто иду по первой букве, заключается в том, что размер пакета слишком велик для серверов MySQL по умолчанию с одним большим импортом sql. (программа предназначена для публичного выпуска, и мне бы не хотелось заставлять всех редактировать свой max_packet_size только для того, чтобы использовать приложение)
Итак, мне в основном нужна помощь, чтобы выяснить, почему он выполняет только часть команд или есть ли другой способ сделать это.