Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 28.02.2014
Сообщений: 24

Как правильно запускать bat-файлы

13.04.2014, 19:48. Показов 2514. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не пойму почему почему после процесса запускающий .bat файл не образуется файл .exe где у меня здесь ошибка
Однако когда использую код в отдельном консольном приложении файл .exe образуется и все работает
C#
1
2
3
4
 Process process = new Process();
 process.StartInfo.FileName = @"C:\new\61\61.bat";
                 
                 process.Start();
при клике мышью на .bat файл .exe файл образуется
а здесь не хочет зараннеее спасибо

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
 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());            
            }         
         } 
             
       }
     }
    }
Добавлено через 7 минут
this.grd_Show.Rows[i].Cells[0].Value.ToString() - это номер файла или папки

Добавлено через 4 минуты
который бередся из поля dataGridView

Добавлено через 1 час 10 минут
Ясно процесс где то блокируется самой программой но где вот вопросс

Добавлено через 29 секунд
Программа большая
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.04.2014, 19:48
Ответы с готовыми решениями:

Как запускать файлы прямо из Resources?
Не могу найти способ запускать файлы прямо из Resources\ чтоб были в составе *.exeшника нет разве такого как ..\Папка\*.exe?

Как правильно запускать службу с использованием мех?
Что не пытался, ввошел в тупик... Выдает ошибку: Unhandled Exception: System.ServiceModel.AddressAccessDeniedException: HTTP could not...

Как запускать bat-файлы по нажатию кнопки?
Здравствуйте , так как полный нуб в программировании прошу помощи у знатных питоноводов :) Скрипт создает множество bat файлов (кол-во...

4
 Аватар для igor_fl
63 / 63 / 28
Регистрация: 18.03.2014
Сообщений: 794
13.04.2014, 20:37
А так пробовали
C#
1
Proccess.start(@"C:\new\61\61.bat");
1
0 / 0 / 0
Регистрация: 28.02.2014
Сообщений: 24
13.04.2014, 21:46  [ТС]
А вот когда поместил файлы .bat и .cs в папку Debug все начало работать Но хотелось бы компелировать файлы в любой папке а не только в корневой с екзешником

Добавлено через 4 минуты
Поместил файлы .bat и .cs в папку Debug все заработало но хотелось бы компелировать не только в корневой папке с екзешником а по выбору

Добавлено через 1 минуту
Спасибо что откликнулись да пробовал результат тот же не работает
Поместил файлы .bat и .cs в папку Debug все заработало но хотелось бы компелировать не только в корневой папке с екзешником а по выбору

Добавлено через 25 минут
Я где то читал что файлы для запуска процесса нужно помещать в корневую папку с екзешником но должен быть и другой способ не только в файле с екзешником
0
 Аватар для igor_fl
63 / 63 / 28
Регистрация: 18.03.2014
Сообщений: 794
13.04.2014, 22:25
Лучший ответ Сообщение было отмечено ivi_ivi как решение

Решение

вот пример, думаю должно быть понятно
C#
1
2
3
4
5
6
7
8
ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe");
            startInfo.WindowStyle = ProcessWindowStyle.Minimized;
 
            Process.Start(startInfo);
 
            startInfo.Arguments = "www.northwindtraders.com";
 
            Process.Start(startInfo);
или вашем случае можно так
C#
1
Proccess.start("cmd.exe","C:\\new\\61\\61.bat");
1
Почетный модератор
 Аватар для Памирыч
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
14.04.2014, 07:24
Лучший ответ Сообщение было отмечено ivi_ivi как решение

Решение

Цитата Сообщение от ivi_ivi Посмотреть сообщение
но должен быть и другой способ не только в файле с екзешником
Батник срабатывает в папке с программой потому, что совпали их текущие директории.
Если хотите запускать батник по пути, отличному от текущего, в параметрах процесса укажите рабочую директорию
C#
1
P.StartInfo.WorkingDirectory = папка, где лежит батник
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.04.2014, 07:24
Помогаю со студенческими работами здесь

Как программу FoxitReader и скрипт jsee запускать из bat-файла?
Здравствуйте. Помогите, пожалуйста, прописать строку в bat-файл. Есть файлы pdf, которые нужно открывать программой FoxitReader 4.3 и...

Как запускать и останавливать уже настроенный rdp-сервер из bat-файла?
здравствуйте. подскажите пожалуйста, как запускать и останавливать уже настроенный rdp-сервер из bat-файла?

Как сделать bat-ник с фильтром который будет проверять абсолютно все на пк, но файлы с окончанием .bat и .vbs
Как сделать bat-ник с фильтром который будет проверять абсолютно все на пк, но файлы с окончанием .bat и .vbs будет переносить в папку...

Как запускать из VB Вордавские файлы?
Подскажыте пожалуйста как запускать из VB Вордавские файлы Зарание блогодарен.

Как правильно запускать Java-приложения?
Уважаемые! Подскажите, пожалуйста, как запустить Java-приложения (или может быть скачать их), а то замучился уже - на Форексе поиграть не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru