Recherche d’un parsingur d’arguments en ligne de commande pour .NET

Je recherche un parsingur d’arguments en ligne de commande, tel que “Analyseur de ligne de commande” sur http://www.sellsbrothers.com/tools/Genghis/ .

Caractéristiques recherchées:

  • Auto-génération d’utilisation
  • Devrait pouvoir vérifier les parameters obligatoires et facultatifs
  • Les parameters doivent prendre en charge IEnumerable avec le support de séparateur
  • Devrait prendre en charge les parameters de l’indicateur
  • Serait bien de supporter la combinaison des parameters tels que “/ fx” == “/ f / x”
  • Ce serait bien de ne pas forcer pour un espace après un paramètre tel que “/ftest.txt” == “/ f test.txt”

PS: “L’parsingur de ligne de commande” est très bon, j’aime beaucoup sa conception, mais il n’y a pas de documentation, pas de nouvelles mises à jour et je ne pouvais pas faire certaines choses comme vérifier les parameters requirejs.

Ma bibliothèque d’parsing de ligne de commande préférée est la ligne de commande de l’parsingur de ligne de commande et je suppose que c’est celle à laquelle vous faites référence. La version la plus récente date de moins de 2 mois et il y a des commits réguliers. Si vous voulez une offre plus mature, vous pouvez essayer la bibliothèque de la console dans le projet mono (désolé, je n’arrive pas à trouver un lien direct vers l’espace de noms pour le moment, mais c’est une partie du cadre mono)

Regardez ndesk.options.

Il s’appelle Mono.Options maintenant.

GNU getopt est un parsingur de ligne de commande C très répandu . Cela a été porté (ou cloné) pour C # /. Net plusieurs fois. Certains d’entre eux comprennent:

  • getopt # sur freshmeat.net
  • C # getopt à PHPGuru
  • XGetoptCS sur CodeProject
  • GetOpt pour .NET sur CodeProject
  • Getopt C # .NET sur Codeplex

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 regardé dans PowerShell? Je parie qu’il y a une classe dans ce shell qui fait exactement ce que vous voulez ou quelque chose de similaire.

Edit: comme le souligne fatcat1111, cette fonctionnalité n’était pas livrée avec la version finale de .net 4.0.

C # 4.0 a un très bon. Probablement pas très utile pour le moment, mais vous voudrez peut-être envisager quelque chose qui facilitera le passage à la version intégrée dès sa sortie. Bart De Smet en a parlé sur son blog B #

Je suggère NDesk.Options

regarde ici:

Meilleur moyen d’parsingr les arguments de ligne de commande en C #?

Considérez qu’une fois que vous commencez à utiliser cet parsingur, vous devrez soit le gérer vous-même, soit dépendre de quelqu’un d’autre pour le gérer pour vous. Vous feriez peut-être mieux d’écrire le vôtre, à partir de vos exigences les plus critiques, immédiates. J’ai constaté que produire des parsings de ligne de commande assez compliquées pour la plupart des applications sur lesquelles je travaillais n’est pas trop compliqué.

J’ai également constaté que lorsque l’parsing est trop compliquée, il est 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 avait ce problème, et sa première pensée était “hé, ocaml en a un très bon!”, Et l’a rapidement porté sur F #.

J’utilise l’parsingur 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 de petits changements de code pour le faire sortir de votre dossier dans votre propre classe, mais ce n’est pas un gros problème.

Il prend en charge tous vos points sauf les deux derniers (paramètre combinant & espace manquant).