CommandLineParser class
Provides methods for reading and accessing of command-line parameters and options.
Diese Klasse stellt Methoden zum Einlesen von Kommandozeilenparametern bereit. Zunächst werden alle Optionen namentlich registriert, dabei kann ein kurzer und ein langer Name angegeben werden, und ob die Option einen weiteren Parameter erfordert. Anschließend kann mit weiteren Methoden abgefragt werden, ob eine bestimmte Option angegeben wurde und welchen Parameterwert sie hat. Die Parametersyntax orientiert sich dabei an den POSIX-getopt()
-Funktionen.
Compatibility:
Kommandozeilenparameter in PHP? Weiter zum Arguments-Parser…
Beispiel
Der folgende Beispielcode zeigt, wie die CommandLineParser-Klasse verwendet werden kann:
public static void Main()
{
CommandLineParser clp = new CommandLineParser();
clp.AddKnownOption("h", "help");
clp.AddKnownOption("H", "host", true);
clp.AddKnownOption("u", "user", true);
clp.AddKnownOption("p", "pass", true);
clp.AddKnownOption("q", "quiet");
clp.AddKnownOption("s", "start");
clp.AddKnownOption("v", "verbose");
if (clp.IsOptionSet("h"))
{
// Show some help
Console.WriteLine("Usage:");
Console.WriteLine("");
Console.WriteLine("-h, --help Show this help");
Console.WriteLine("-u, --user <username> Specify username");
Console.WriteLine("-H, --host <hostname> Specify hostname");
Console.WriteLine("-v, --verbose Be verbose");
Console.WriteLine("…");
Console.WriteLine("");
Console.WriteLine("Examples:");
Console.WriteLine(" me.exe -h Show this help");
Console.WriteLine(" me.exe --help Show this help");
Console.WriteLine(" me.exe -u me -s Start with username 'me'");
Console.WriteLine(" me.exe -Huv server me Hostname 'server', username 'me', be verbose");
return;
}
bool beQuiet = clp.IsOptionSet("q");
bool beVerbose = clp.IsOptionSet("v");
string hostname = clp.GetOptionValue("H");
string username = clp.GetOptionValue("u");
string password = clp.GetOptionValue("p");
// Read additional arguments not belonging to any options
string filename1 = clp.GetArgument(0);
string filename2 = clp.GetArgument(1);
if (clp.IsOptionSet("s"))
{
// Start now
}
}
Download
CommandLineParser.cs5.2 KiBQuelltext der CommandLineParser-Klasse
Änderungen
GetArgumentCount
hinzugefügt.
Licence and terms of use
Copying and distribution of this file, with or without modification, are permitted provided the copyright notice and this notice are preserved. This file is offered as-is, without any warranty. (GNU All-Permissive licence)
Statistic data
- Created on 2009-09-19, updated on 2014-02-05.
- Ca. 100 lines of code, estimated development costs: 100 - 400 €