在终端完成某个命令后继续

时间:2016-10-09 14:17:12

标签: c# cmd process terminal

我需要问一个我在互联网上找不到的问题..我正在使用Process在我的c#应用程序中打开cmd ..我需要传递一些命令但是在每个命令之后我需要确保这个命令完成了,所以我可以继续另一个!..用system.diagnostics怎么可能......这是我试过的代码..

    var startInfo = new ProcessStartInfo
      {
          FileName = "cmd.exe",
          RedirectStandardInput = true,
          RedirectStandardOutput = true,
          UseShellExecute = false,
          CreateNoWindow = false,
          WorkingDirectory = @"E:/Visual Studio 2013/" + project_Name + "/packages/NUnit.ConsoleRunner.3.4.1/tools"
      };

      var process = new Process { StartInfo = startInfo };

      process.Start();
      process.StandardInput.WriteLine("nunit3-console.exe E:/Debug/Report_Testing.dll");


      process.WaitForExit();    

等待退出这里无限地挂起,我无法通过这行代码。 这是什么解决方案!?

2 个答案:

答案 0 :(得分:0)

尝试添加选项/c nunit3-console.exe E:/Debug/Report_Testing.dll

现在,它将运行cmd并且命令后提示将保持活动状态。 WaitForExit等待cmd完成,它永远不会。

答案 1 :(得分:-1)

我设法找到了解决方案:

我已将此添加到我的writeline命令并将其更改为:

      process.StandardInput.WriteLine("nunit3-console.exe E:/Debug/Report_Testing.dll" + "&" +"exit");

//然后使用wait退出 process.WaitForExit();

通过这个我确保命令被执行。