Je recherche un analyseur d'arguments de ligne de commande, tel que "Analyseur de ligne de commande" de http://www.sellsbrothers.com/tools/Genghis/ .
Fonctionnalités que je recherche:
PS: "Analyseur de ligne de commande" est assez bon, j'aime vraiment sa conception mais il n'y a pas de documentation, pas de nouvelles mises à jour et je n'arrivais pas à faire certaines choses comme comment pour vérifier les paramètres requis.
Ma bibliothèque d'analyse de ligne de commande tierce préférée est Command Line Parser et je suppose que c'est celle à laquelle vous faites référence. La version la plus récente remonte à moins de 2 mois et il y a des commits réguliers. Si vous voulez une offre plus mature, vous pouvez consulter la bibliothèque de la console dans le projet mono (désolé, je ne peux pas trouver de lien direct vers l'espace de noms pour le moment, mais cela fait partie du cadre mono)
Jetez un œil à ndesk.options.
Il s'appelle Mono.Options maintenant.
Un analyseur de ligne de commande C populaire et assez complet est GNU getopt . Cela a été porté (ou cloné) plusieurs fois pour C # /. Net. Certains d'entre eux comprennent:
Faites votre choix! Il y en a plusieurs autres, et Google peut vous en parler,
Malheureusement, il n'y a pas de support intégré pour gérer cela de manière standard. Avez-vous étudié PowerShell? Je parie qu'il y a une classe dans ce Shell qui fait exactement ce que vous voulez ou quelque chose de similaire.
Je suggère NDesk.Options
regardez ici:
Meilleure façon d'analyser les arguments de ligne de commande en C #?
Edit: comme le souligne fatcat1111, cette fonctionnalité n'est pas livrée avec la version finale de .net 4.0.
C # 4.0 en a une assez bonne. Probablement pas très utile pour le moment, mais vous voudrez peut-être envisager de regarder quelque chose qui facilitera le passage à celui intégré lorsqu'il sortira. Bart De Smet en a parlé sur son blog B #
J'utilise l'analyseur du livre de recettes C # 3.0.
Tous les exemples de ce livre peuvent être téléchargés ici: http://examples.oreilly.com/9780596516109/
Recherchez "Arguments" et vous le trouverez. Vous devez faire quelques petits changements de code pour le retirer de l'ensemble dans votre propre classe, mais ce n'est pas un gros problème.
Il prend en charge tous vos points sauf les deux derniers (combinaison de paramètres et espace manquant).
La bibliothèque BizArk contient un analyseur de ligne de commande.
Fondamentalement, vous créez simplement une classe qui hérite de CmdLineObject, ajoutez des propriétés que vous souhaitez remplir à partir de la ligne de commande, ajoutez un CmdLineArgAttribute aux propriétés, puis appelez Initialize dans votre programme. Il prend également en charge les arguments URL ClickOnce!
Caractéristiques (du site) ...
Considérez qu'une fois que vous commencez à utiliser cet analyseur, vous devrez soit le maintenir vous-même, soit dépendre de quelqu'un d'autre pour le maintenir pour vous. Il vaudrait peut-être mieux que vous écriviez les vôtres, à partir de vos besoins les plus critiques et immédiats. J'ai constaté qu'il ne fallait pas trop de travail pour produire une analyse en ligne de commande assez compliquée pour la plupart des applications basées sur console sur lesquelles j'ai travaillé.
J'ai également constaté que lorsque l'analyse est trop compliquée, il peut être temps d'arrêter d'utiliser la ligne de commande.
Je parie que ce n'est pas tout à fait ce que vous cherchez, mais:
Quelqu'un ici a eu ce problème, et sa première pensée a été "hé, ocaml en a un assez bon!", Et l'a rapidement porté en F #.
Vous aimerez peut-être mon seul Rug.Cmd
Analyseur d'arguments de ligne de commande facile à utiliser et extensible. Poignées: Bool, Plus/Minus, String, String List, CSV, Enumeration.
Construit en '/?' mode d'aide.
Construit en '/ ??' et les modes de génération de document '/? D'.
static void Main(string[] args)
{
// create the argument parser
ArgumentParser parser = new ArgumentParser("ArgumentExample", "Example of argument parsing");
// create the argument for a string
StringArgument StringArg = new StringArgument("String", "Example string argument", "This argument demonstrates string arguments");
// add the argument to the parser
parser.Add("/", "String", StringArg);
// parse arguemnts
parser.Parse(args);
// did the parser detect a /? argument
if (parser.HelpMode == false)
{
// was the string argument defined
if (StringArg.Defined == true)
{
// write its value
RC.WriteLine("String argument was defined");
RC.WriteLine(StringArg.Value);
}
}
}
Edit: Ceci est mon projet et en tant que telle, cette réponse ne doit pas être considérée comme une approbation d'un tiers. Cela dit, je l'utilise pour tous les programmes en ligne de commande que j'écris, c'est open source et j'espère que d'autres pourront en bénéficier.
Je suis fan du port C # d'OptParse, une bibliothèque intégrée en Python. Il est plutôt simple à utiliser par rapport à la plupart des autres suggestions ici et contient un certain nombre de fonctionnalités utiles en plus de l'analyse automatique.