如何通过捕获错误代码并采取适当的操作来执行CMD命令

时间:2011-03-31 07:12:34

标签: c# c++ windows cmd

我想以编程方式执行命令提示符(CMD),然后执行一系列命令并检查命令是否返回成功或失败。

我已经看过如何执行批处理文件或常规命令但是如何捕获错误并在同一窗口中继续执行更多命令。

像,

  

DISKRAID

     
    

创建

         

列表

         

选择

         

名称

         

延伸

         

细节

  

如果以上任何命令返回错误,我必须存储错误并继续执行其他操作。因此,最后,我可以轻松找出哪些命令成功通过,哪些命令失败。

有关如何使用C#或C ++实现这一点的想法吗?

2 个答案:

答案 0 :(得分:0)

如果您只想要进程的退出代码,这应该会有所帮助:

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

答案 1 :(得分:0)

如果您需要执行复杂的命令行操作,我建议您使用脚本语言或cli脚本来执行命令行操作的逻辑,并从c ++调用此脚本。这种方法更容易更改,并且更容易指示c ++ / c#程序的输入是什么样的。这可能就像调用脚本并读取退出值一样简单。

要运行cli脚本,请使用system command