Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在终端完成中的某个命令后继续_C#_Cmd_Process_Terminal - Fatal编程技术网

C# 在终端完成中的某个命令后继续

C# 在终端完成中的某个命令后继续,c#,cmd,process,terminal,C#,Cmd,Process,Terminal,我需要问一个在网上找不到的问题。。我正在使用进程在我的c#应用程序中打开cmd。。我需要传递一些命令,但在每个命令之后,我需要确保这个命令完成,以便我可以继续其他命令!。。在系统中如何实现这一点。诊断。。。这是我试过的代码 var startInfo = new ProcessStartInfo { FileName = "cmd.exe", RedirectStandardInput = true, Redirec

我需要问一个在网上找不到的问题。。我正在使用进程在我的c#应用程序中打开cmd。。我需要传递一些命令,但在每个命令之后,我需要确保这个命令完成,以便我可以继续其他命令!。。在系统中如何实现这一点。诊断。。。这是我试过的代码

    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();    
在这里等待退出无限挂起,我无法通过这行代码。
有什么解决办法

尝试添加选项
/c nunit3-console.exe E:/Debug/Report\u Testing.dll


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

我已经找到了解决方案:

我已将其添加到writeline命令中,并将其更改为:

      process.StandardInput.WriteLine("nunit3-console.exe E:/Debug/Report_Testing.dll" + "&" +"exit");
//然后使用等待退出 process.WaitForExit()


通过此操作,我确保命令已执行。

我无法理解您的意思Uno对不起,我想知道命令何时完成。。。选项/k的作用是什么?您还希望我将其添加到writeline行???@OmarEl elamy您的进程启动
cmq
,而不是nunit运行程序,因此它会附加到该行以进行终止。如果您想在代码中关闭它,您应该将
exit
发送到命令行,但我认为这并不优雅。测试运行程序是作为cmd的子命令运行的,因此即使运行程序退出,父命令也不会/c被识别为内部或外部命令?有什么我必须下载的吗?那么在跑步者退出后,我能做些什么来关闭终端呢?i、 e.命令完成后。。这可能也是一个选项??这真的很讨厌,我会尝试执行一次性命令。一次性命令如何??我只想完成它然后退出??