Запустите .bat файл из C # - PullRequest
       13

Запустите .bat файл из C #

1 голос
/ 17 февраля 2012

У меня возникла странная проблема, у меня есть файл .bat, который содержит код для переименования файла, когда я открываю файл .bat вручную, он делает то, что написано на нем, который переименовывает файл, но когда япопробуйте открыть его программно из C #, он ничего не делает, он просто открывает файл и не компилирует то, в что он записан.я набрал этот код:

Process.Start(@"file.bat");

Я также знал, что если вы введете путь в cmd и нажмете Enter, он откроет файл и скомпилирует его, поэтому я написал, что:

ProcessStartInfo psi3 = new ProcessStartInfo("cmd", "/c " + '"'+"D:\\my Work\\My Soft\\CA Delete\\CA Delete\\bin\\Debug\\file.bat"+'"');
Process p3 = Process.Start(psi3);
p3.WaitForExit()

Но все та же проблема: файл открывается, но никогда не делает то, что в него записано.

РЕДАКТИРОВАТЬ: [Я понял, почему]

Я сделал снимок окон CMD, которыедолжен запустить файл .bat, и я получил ОШИБКУ:

ERROR : THE FILE SPECIFIED COULD NOT BE FOUND

но как?когда я запускаю .bat файл вручную, он работает FINE !!!

Ответы [ 4 ]

0 голосов
/ 30 мая 2013

Это должно работать для вас:

String myBatchFileName = "name_of_file.bat";
System.Diagnostics.Process.Start(myBatchFileName);
  • Обратите внимание, что переменная myBatchFileName является фактическим именем файла .bat .....
0 голосов
/ 17 февраля 2012

Возможно, вам потребуются дополнительные привилегии администратора для выполнения того, что предназначено для пакетного файла.Если это так, используйте альтернативную версию Process.Start ():

Start(string fileName, string arguments, string userName, SecureString password, string domain);
0 голосов
/ 18 февраля 2012

Сделать первую строку командного файла такой:

pushd% ~ dp1

Это установит рабочий каталог командных файлов.

Мартын

0 голосов
/ 17 февраля 2012

вы можете попробовать вот так. ProcessStartInfo

psi3.RedirectStandardError= true;
psi3 .RedirectStandardOutput= true;
psi3.UseShellExecute= false;
...