Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.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# 运行一批CLI命令_C#_Windows_Shell_Command Line Interface - Fatal编程技术网

C# 运行一批CLI命令

C# 运行一批CLI命令,c#,windows,shell,command-line-interface,C#,Windows,Shell,Command Line Interface,编辑-这是来自的副本 我想为现有的CLI应用程序(我只有这个CLI应用程序的二进制文件)创建一个gui包装(C#)。为了做到这一点,我需要运行CLI应用程序,然后解析其输出,给出更多命令(取决于输出),等等 我知道我可以使用System.Diagnostics.Process.Start(…)运行单个命令。但是有什么方法可以与该线程通信吗?或者在C#中还有其他方法可以做到这一点吗 我建议将其用于这些目的。它支持运行进程、参数格式、取消、管道以及许多其他功能。比直接使用系统.诊断.过程平滑得多 一

编辑-这是来自的副本

我想为现有的CLI应用程序(我只有这个CLI应用程序的二进制文件)创建一个gui包装(C#)。为了做到这一点,我需要运行CLI应用程序,然后解析其输出,给出更多命令(取决于输出),等等

我知道我可以使用System.Diagnostics.Process.Start(…)运行单个命令。但是有什么方法可以与该线程通信吗?或者在C#中还有其他方法可以做到这一点吗

我建议将其用于这些目的。它支持运行进程、参数格式、取消、管道以及许多其他功能。比直接使用
系统.诊断.过程
平滑得多

一些例子:

使用CliWrap;
使用CliWrap.Buffered;
var result=wait Cli.Wrap(“path/to/exe”)
.带参数(“--foo-bar”)
.ExecuteBufferedAsync();
//结果包括:
//--result.StandardOutput(字符串)
//--result.StandardError(字符串)
//--result.ExitCode(int)
//--result.StartTime(日期时间偏移)
//--result.ExitTime(日期时间偏移)
//--result.RunTime(TimeSpan)
var cmd=“Hello world”Cli.Wrap(“foo”)
.WithArguments(“随机打印”)| Cli.Wrap(“条”)
.WithArguments(“reverse”)|(Console.WriteLine,Console.Error.WriteLine);
wait cmd.ExecuteAsync();

重定向stdin/out,例如,听起来您需要连接到进程的IO流。。不知道这对你的谷歌搜索是否有帮助。。寻找类似于
stdin stdout system.diagnostics.process.start c#
的内容,这将(希望)使我能够访问输出。但是,我如何在以后向流程发送新的输入?写入流?是,写入输入流