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