Console应用程序中的用户输入命令

时间:2013-08-02 01:19:42

标签: c# console-application

我希望我的控制台应用程序具有用户类型/help和控制台写入帮助等命令。我希望使用switch之类的:

switch (command)
{
    case "/help":
        Console.WriteLine("This should be help.");
        break;

    case "/version":
        Console.WriteLine("This should be version.");
        break;

    default:
        Console.WriteLine("Unknown Command " + command);
        break;
}

我怎样才能做到这一点?提前谢谢。

3 个答案:

答案 0 :(得分:7)

根据您对errata's answer的评论,您似乎希望保持循环,直到您被告知不要这样做,而不是在启动时从命令行获取输入。如果是这种情况,您需要在switch之外循环以保持运行。以下是基于您上面所写内容的快速示例:

namespace ConsoleApplicationCSharp1
{
  class Program
  {
    static void Main(string[] args)
    {
        string command;
        bool quitNow = false;
        while(!quitNow)
        {
           command = Console.ReadLine();
           switch (command)
           {
              case "/help":
                Console.WriteLine("This should be help.");
                 break;

               case "/version":
                 Console.WriteLine("This should be version.");
                 break;

                case "/quit":
                  quitNow = true;
                  break;

                default:
                  Console.WriteLine("Unknown Command " + command);
                  break;
           }
        }
     }
  }
}

答案 1 :(得分:0)

这些方面的某些内容可能有效:

// cmdline1.cs
// arguments: A B C
using System;
public class CommandLine
{
   public static void Main(string[] args)
   {
       // The Length property is used to obtain the length of the array. 
       // Notice that Length is a read-only property:
       Console.WriteLine("Number of command line parameters = {0}",
          args.Length);
       for(int i = 0; i < args.Length; i++)
       {
           Console.WriteLine("Arg[{0}] = [{1}]", i, args[i]);
       }
   }
}

运行命令:cmdline1 A B C

输出:

 Number of command line parameters = 3
    Arg[0] = [A]
    Arg[1] = [B]
    Arg[2] = [C]

我不再做c#much(any)了,但希望这有帮助。

答案 2 :(得分:0)

存在像http://www.codeproject.com/Articles/63374/C-NET-Command-Line-Argument-Parser-Reloaded这样的。开源项目来处理这个问题。为什么重新发明轮子?