这似乎是一个奇怪的问题,所以我会尽可能简单地解释它。我正在C#中制作一个像CMD这样的应用程序,我需要像'ping'这样的命令。我有一个switch语句来检查输入的命令并执行它。这是:解析命令行参数字符串
switch (CommandName)
{
case "intro":
{
Console.WriteLine("intro");
CommandListen();
}
break;
case "clear":
{
CommandFolder.CmdClear cmd = new CommandFolder.CmdClear();
cmd.Execute();
CommandListen();
}
break;
case "ping":
{
CommandFolder.CmdPing cmd = new CommandFolder.CmdPing();
cmd.Execute(CommandName);
CommandListen();
}
break;
case "exit":
{
CommandFolder.CmdExit cmd = new CommandFolder.CmdExit();
cmd.Execute();
}
break;
default:
CommandListen();
break;
}
我不知道如何让它与一个命令,即ping [ip/url] [extra]的参数一起工作。如果我输入“ping”,它会起作用并执行该命令,但如果输入“ping www.google.com”,则会出现无法识别的命令错误。我需要一种方法来检查命令的第一部分,然后传递参数。
我很抱歉,如果这是模糊的,我只是不知道该怎么说。
所以,你基本上问如何拆分空间的字符串? – 2014-09-03 10:15:02
尝试此库 - https://commandline.codeplex.com/ – Anuraj 2014-09-03 10:17:23
您的代码正在查看'CommandName',它大概是从某处用户输入设置的。在捕获该值的代码中,需要将用户的输入分为“命令”和“参数”,而不是仅仅通过整个事件。你有这样的东西吗?如果没有,您需要查看“解析”教程,这些教程将向您展示如何将字符串分解为可识别的块。 – 2014-09-03 10:17:30