控制台应用程序中的 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];
等等
我想在可执行文件本身中包含命令,例如:
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];
等等