控制台应用程序中的 C# 子命令

C# Subcommands within console application

我想在可执行文件本身中包含命令,例如:

shorten http://whosebug.com/

和 url 将被解析为参数,如果我将其设置为 return 参数,它应该 return 我 http://whosebug.com/

另一个例子是

foo bar

它将检查什么是主命令 foo 及其下的子命令 bar 并将执行命令。

这应该在可执行文件中完成,而不是调用目录中的可执行文件。我想在可执行文件中有多个自定义命令,而不是为每个命令创建一个。

我知道如果每个命令都是可执行文件时如何使用参数,但我想要在 1 个可执行文件中包含一些命令和子命令。这可能吗?

编辑:

这就是我想要的:

static void Main(string[] args)
    {
        for (int i = 0; i < args.Length; i++)
        {
            if (args[i] == "short")
            {
                Console.WriteLine(args[i + 1]);
            }
        }
        Console.Read();
    }

这将 return 我 short 的论点。所以如果我输入 short link 它会 return 我 link.

然而,这只有在我通过命令行调用可执行文件时才有效,如 C:\Path\ConsoleApplication1.exe 如果我打开应用程序并键入 short link,则不会 return 我任何东西并关闭。

当我打开应用程序并输入它时,如何让它工作?

您可以使用 Console.ReadLine:

var input = Console.ReadLine();

要获取命令和参数,请使用 String.Split :

var command = input.Split()[0];
var argument1 = input.Split()[1];

等等