繁体   English   中英

运行一批 CLI 命令

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM