[英]Run a batch of CLI commands
编辑 - 这是从这里复制的
我想为现有的 CLI 应用程序创建一个 gui 包装器(在 C# 中)(我只有这个 CLI 应用程序的二进制文件)。 为了做到这一点,我需要运行 CLI 应用程序,然后解析它的输出,给出更多命令(女巫取决于输出)等等。
我知道我可以使用 System.Diagnostics.Process.Start(...) 来运行单个命令。 但是有什么方法可以与该线程通信吗? 或者有没有其他方法可以在 C# 中做到这一点?
我建议将CliWrap用于这些目的。 它支持运行进程、参数格式化、取消、管道和许多其他事情。 比直接使用System.Diagnostics.Process
顺畅得多。
一些例子:
using CliWrap;
using CliWrap.Buffered;
var result = await Cli.Wrap("path/to/exe")
.WithArguments("--foo bar")
.ExecuteBufferedAsync();
// Result contains:
// -- result.StandardOutput (string)
// -- result.StandardError (string)
// -- result.ExitCode (int)
// -- result.StartTime (DateTimeOffset)
// -- result.ExitTime (DateTimeOffset)
// -- result.RunTime (TimeSpan)
var cmd = "Hello world" | Cli.Wrap("foo")
.WithArguments("print random") | Cli.Wrap("bar")
.WithArguments("reverse") | (Console.WriteLine, Console.Error.WriteLine);
await cmd.ExecuteAsync();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.