CommandLineParser-Klasse

Stellt Methoden zum Einlesen und Auswerten von Kommandozeilenparametern und -optionen bereit.

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.

Kompatibilität: .NET Ab Version 2.0

Kommandozeilenparameter in PHP? Weiter zum Arguments-Parser…

Beispiel

Der folgende Beispielcode zeigt, wie die CommandLineParser-Klasse verwendet werden kann:

using Unclassified;

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

2014Feb5
Funktion GetArgumentCount hinzugefügt.

Lizenz und Nutzungsbedingungen

Vervielfältigung und Weiterverbreitung dieser Datei, verändert oder unverändert, sind gestattet, vorausgesetzt die Urheberrechtsangabe und dieser Hinweis bleiben erhalten. Diese Datei wird wie vorliegend ohne jegliche Garantie oder Gewährleistung angeboten. (GNU All-Permissive-Lizenz)

Statistische Daten

  • Erstellt am 2009-09-19, aktualisiert am 2014-02-05.
  • Ca. 100 Codezeilen, geschätzte Ent­wick­lungs­kos­ten: 100 - 400 €