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)); } }