C# 在终端完成中的某个命令后继续
我需要问一个在网上找不到的问题。。我正在使用进程在我的c#应用程序中打开cmd。。我需要传递一些命令,但在每个命令之后,我需要确保这个命令完成,以便我可以继续其他命令!。。在系统中如何实现这一点。诊断。。。这是我试过的代码C# 在终端完成中的某个命令后继续,c#,cmd,process,terminal,C#,Cmd,Process,Terminal,我需要问一个在网上找不到的问题。。我正在使用进程在我的c#应用程序中打开cmd。。我需要传递一些命令,但在每个命令之后,我需要确保这个命令完成,以便我可以继续其他命令!。。在系统中如何实现这一点。诊断。。。这是我试过的代码 var startInfo = new ProcessStartInfo { FileName = "cmd.exe", RedirectStandardInput = true, Redirec
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.命令完成后。。这可能也是一个选项??这真的很讨厌,我会尝试执行一次性命令。一次性命令如何??我只想完成它然后退出??