Welcome to CSharp Labs

CommandArgs Command Line Argument Parser

Monday, May 13, 2013

This is a utility class designed to parse command line arguments. The static CommandArgs.Current property initializes the CommandArgs class with Environment.CommandLine. Flags and switches are compared with StringComparer.OrdinalIgnoreCase by default.

Usage:

Command Line Flags (e.g. -help -run -recovery)
            CommandArgs args = CommandArgs.Current;
            IList flags = args.Flags;

            if (flags.Contains("help", args.Comparer))
            {
                Console.Write(string.Format("Flag {0}", "help"));
            }
Command Line Switches (e.g. /restart /log)
            CommandArgs args = CommandArgs.Current;
            IList switches = args.Switches;

            if (switches.Contains("restart", args.Comparer))
            {
                Console.Write(string.Format("Switch {0}", "restart"));
            }
Command Line Flag Pairs (e.g. -load:full -display:hidden)
            CommandArgs args = CommandArgs.Current;
            IList<CommandArgumentKeyPair> pairs = args.FlagPairs;

            foreach (CommandArgumentKeyPair pair in pairs)
            {
                if (args.Comparer.Equals(pair.Key, "load"))
                {
                    Console.Write(string.Format("Flag {0} has value {1}", pair.Key, pair.Value));
                }
            }
Command Line Switch Pairs (e.g. /cancel:downloads /reset:true)
            CommandArgs args = CommandArgs.Current;
            IList<CommandArgumentKeyPair> pairs = args.SwitchPairs;

            foreach (CommandArgumentKeyPair pair in pairs)
            {
                if (args.Comparer.Equals(pair.Key, "cancel"))
                {
                    Console.Write(string.Format("Switch {0} has value {1}", pair.Key, pair.Value));
                }
            }

Download CommandArgs Utility Class

Comments