Как правильно запускать bat-файлы - C#
Формулировка задачи:
Не пойму почему почему после процесса запускающий .bat файл не образуется файл .exe где у меня здесь ошибка
Однако когда использую код в отдельном консольном приложении файл .exe образуется и все работает
при клике мышью на .bat файл .exe файл образуется
а здесь не хочет зараннеее спасибо
Process process = new Process(); process.StartInfo.FileName = @"C:\new\61\61.bat"; process.Start();
private void button4_Click(object sender, EventArgs e) { // string fullFileName = @"F:\prin_fil\таймер.docx"; DirectoryInfo dir = new DirectoryInfo(@"C:\prin_fil"); FileInfo[] bmpfiles = dir.GetFiles("*.cs"); Console.WriteLine("Total number of bmp files", bmpfiles.Length); foreach( FileInfo f in bmpfiles) { MessageBox.Show("Name is : {0} " + f.Name); MessageBox.Show("Length of the file is : {0} " + f.Length.ToString()); MessageBox.Show("Creation time is : {0} " + f.CreationTime.ToString()); MessageBox.Show("Creation time is : {0} " + f.FullName.ToString()); MessageBox.Show("Creation time is : {0} " + f.Extension.ToString()); MessageBox.Show("Attributes of the file are : {0} " + f.Attributes.ToString()); for (int i = 0; i < AlShow.Count; i++) { if ( this.grd_Show.Rows[i].Cells[0].Value.ToString() + f.Extension.ToString() == f.Name.ToString()) { //время прихода копии DateTime dt = DateTime.Now; int sec = dt.Second; int min = dt.Minute; int hour = dt.Hour; string jj = "_"; jj += hour.ToString() + "_" + min.ToString() + "_" + sec.ToString(); string put = @"cd C:\new\" + this.grd_Show.Rows[i].Cells[0].Value.ToString() + " \r\ncsc /t:exe " + f.Name.ToString(); //делаем копию f.CopyTo(@"C:\new\" + this.grd_Show.Rows[i].Cells[0].Value.ToString() + "\\" + this.grd_Show.Rows[i].Cells[0].Value.ToString() + "\\" + jj + "__" + f.Name.ToString(), true); //Есть ли уже файл в папке if (File.Exists(@"C:\new\" + this.grd_Show.Rows[i].Cells[0].Value.ToString() + "\\" + f.Name.ToString()) == true) { //стираем файл DirectoryInfo dir3 = new DirectoryInfo(@"C:\new\61"); FileInfo[] bmpfiles3 = dir3.GetFiles("*.cs"); foreach (FileInfo f3 in bmpfiles3) { f3.Delete(); } FileInfo[] bmpfiles4 = dir3.GetFiles("*.bat"); foreach (FileInfo f4 in bmpfiles3) { f4.Delete(); } //переносим файл f.MoveTo(@"C:\new\" + this.grd_Show.Rows[i].Cells[0].Value.ToString() + "\\" + f.Name.ToString()); // dir3.Create(this.grd_Show.Rows[i].Cells[0].Value.ToString() + ".bmp"); //создать (если нет) либо открыть если есть и записать текст (путем замены если что то было записано) //cd C:\new\ + this.grd_Show.Rows[i].Cells[0].Value.ToString() + "csc /t:exe" + f.Name.ToString(); System.IO.File.WriteAllText(@"C:\new\" + this.grd_Show.Rows[i].Cells[0].Value.ToString() + "\\" + this.grd_Show.Rows[i].Cells[0].Value.ToString() + ".bat", put); Thread.Sleep(300); MessageBox.Show("Пошло"); Process process = new Process(); process.StartInfo.FileName = @"C:\new\61\61.bat"; //подписываемся на событие завершения процесса //process.Exited += process_Exited; //асинхронная операция, не блокирует поток, из которого была вызвана process.Start(); // Pros_(); } else { //переносим файл f.MoveTo(@"C:\new\" + this.grd_Show.Rows[i].Cells[0].Value.ToString() + "\\" + f.Name.ToString()); //создаем файл .bat System.IO.File.WriteAllText(@"C:\new\" + this.grd_Show.Rows[i].Cells[0].Value.ToString() + "\\" + this.grd_Show.Rows[i].Cells[0].Value.ToString() + ".bat", put); Thread.Sleep(300); MessageBox.Show("Пошло"); Process process = new Process(); process.StartInfo.FileName = @"C:\new\61\61.bat"; //подписываемся на событие завершения процесса //process.Exited += process_Exited; //асинхронная операция, не блокирует поток, из которого была вызвана process.Start(); // Pros_(); // dir2.CreateSubdirectory(this.grd_Show.Rows[i].Cells[0].Value.ToString()); } } } } }
this.grd_Show.Rows[i].Cells[0].Value.ToString() - это номер файла или папки
который бередся из поля dataGridView
Ясно процесс где то блокируется самой программой но где вот вопросс
Программа большая
Решение задачи: «Как правильно запускать bat-файлы»
textual
Листинг программы
P.StartInfo.WorkingDirectory = папка, где лежит батник
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д