簡體   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