Как выполнять команды CMD, перехватывая код ошибки и предпринимая соответствующие действия - PullRequest
0 голосов
/ 31 марта 2011

Я хотел бы выполнить командную строку (CMD) программно, а затем выполнить ряд команд и проверить, возвращают ли команды успех или неудачу.

Я видел, как выполнять командный файл или общие команды, но как я могу перехватить ошибки и продолжить выполнение других команд в том же окне.

Как,

DiskRaid

1011 * создать *

список

выберите

имя

1019 * продлить *

подробно * * тысяча двадцать-одна

И если любая из вышеперечисленных команд возвращает ошибку, я должен сохранить ошибку и продолжить выполнение других операций. Так что в конце я могу легко определить, какие команды прошли успешно, а какие - нет.

Есть идеи, как это можно реализовать с помощью C # или C ++?

Ответы [ 2 ]

0 голосов
/ 05 апреля 2011

Если вам нужно выполнять сложные операции командной строки, я бы посоветовал вам использовать язык сценариев или сценарий cli для выполнения логики операций командной строки и вызывать этот сценарий из c ++. Этот подход легче изменить, и он легче диктует, как выглядит входная информация для вашей программы на c ++ / c #. Тогда это может быть так же просто, как просто вызвать скрипт и прочитать значение выхода.

Для запуска сценария cli используйте системную команду

0 голосов
/ 05 апреля 2011

Если вам нужен только код выхода процесса, это должно помочь:

Process test = new Process();
test.StartInfo = psi;
test.EnableRaisingEvents = true;
test.Exited += new EventHandler(test_Exited);

...    

void test_Exited(object sender, EventArgs e)
{
  int exitCode = ((Process)sender).ExitCode;
  switch (exitCode)
  {
     case 0:
         DoSomething();
         break;
     case 1:
         .......
  }

С событием OutputDataReceived вы можете асинхронно читать выходные данные процесса.Больше информации здесь: MSDN

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...