Lors de la création d'applications console qui prennent des paramètres, vous pouvez utiliser les arguments passés à Main(string[] args)
.
Dans le passé, j'ai simplement indexé / bouclé ce tableau et fait quelques expressions régulières pour extraire les valeurs. Cependant, lorsque les commandes deviennent plus compliquées, l'analyse peut devenir assez moche.
Je suis donc intéressé par:
- Bibliothèques que vous utilisez
- Modèles que vous utilisez
Supposons que les commandes respectent toujours des normes communes, comme indiqué ici .
c#
.net
command-line-arguments
Paul Stovell
la source
la source
Réponses:
Je suggérerais fortement d'utiliser NDesk.Options ( Documentation ) et / ou Mono.Options (même API, espace de noms différent). Un exemple de la documentation :
la source
git checkout master
), ou leurs arguments ne sont pas flexibles (c'est-à-dire qu'ils ne prennent pas en charge--foo 123
=--foo=123
=-f 123
=-f=123
et aussi-v -h
=-vh
).J'aime vraiment la bibliothèque d'analyseurs de ligne de commande ( http://commandline.codeplex.com/ ). Il a une manière très simple et élégante de configurer les paramètres via des attributs:
la source
--recursive
aussi.La bibliothèque WPF TestApi est livrée avec l'un des meilleurs analyseurs de ligne de commande pour le développement C #. Je recommande fortement de l'examiner, sur le blog d' Ivo Manolov sur l'API :
la source
Regardez http://github.com/mono/mono/tree/master/mcs/class/Mono.Options/
la source
On dirait que tout le monde a ses propres analyseurs en ligne de commande pour animaux de compagnie, je ferais mieux d'ajouter le mien aussi :).
http://bizark.codeplex.com/
Cette bibliothèque contient un analyseur de ligne de commande qui initialisera une classe avec les valeurs de la ligne de commande. Il a une tonne de fonctionnalités (je l'ai construit pendant de nombreuses années).
Du documentation ...
L'analyse de la ligne de commande dans le cadre BizArk a ces fonctionnalités clés:
la source
J'ai écrit un analyseur d'argument en ligne de commande C # il y a quelque temps. Son à: http://www.codeplex.com/CommandLineArguments
la source
CLAP (analyseur d'arguments en ligne de commande) possède une API utilisable et est merveilleusement documenté. Vous créez une méthode en annotant les paramètres. https://github.com/adrianaisemberg/CLAP
la source
myapp myverb -argname argvalue
(doit avoir-argname
) oumyapp -help
(généralement--help
).Il existe de nombreuses solutions à ce problème. Pour être complet et pour fournir l'alternative si quelqu'un le souhaite, j'ajoute cette réponse pour deux classes utiles dans ma bibliothèque de codes Google .
Le premier est ArgumentList qui est uniquement responsable de l'analyse des paramètres de ligne de commande. Il collecte les paires nom-valeur définies par les commutateurs «/ x: y» ou «-x = y» et collecte également une liste d'entrées «sans nom». Son utilisation de base est discutée ici , consultez la classe ici .
La deuxième partie de ceci est le CommandInterpreter qui crée une application de ligne de commande entièrement fonctionnelle à partir de votre classe .Net. Par exemple:
Avec l'exemple de code ci-dessus, vous pouvez exécuter ce qui suit:
-- ou --
C'est aussi simple que cela ou aussi complexe que vous en avez besoin. Vous pouvez consulter le code source , afficher l'aide ou télécharger le binaire .
la source
J'aime celui-là , parce que vous pouvez "définir des règles" pour les arguments, nécessaires ou non, ...
ou si vous êtes un type Unix, vous aimerez peut-être le port GNU Getopt .NET .
la source
Vous aimerez peut-être mon tapis unique .
Analyseur d'arguments de ligne de commande facile à utiliser et extensible. Poignées: booléen, plus / moins, chaîne, liste de chaînes, CSV, énumération.
Construit en '/?' mode d'aide.
Construit en '/ ??' et les modes de génération de document '/? D'.
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.
la source
Il y a un analyseur d'arguments en ligne de commande sur http://www.codeplex.com/commonlibrarynet
Il peut analyser des arguments en utilisant
1. des attributs
2. des appels explicites
3. une seule ligne d'arguments multiples OU un tableau de chaînes
Il peut gérer des choses comme les suivantes:
- config : Qa - date de début : $ { today } - région : 'New York' Settings01
C'est très simple à utiliser.
la source
Ceci est un gestionnaire que j'ai écrit sur la base de la
Options
classe Novell .Celui-ci est destiné aux applications console qui exécutent une
while (input !="exit")
boucle de style, une console interactive telle qu'une console FTP par exemple.Exemple d'utilisation:
Et la source:
la source
Mon préféré est http://www.codeproject.com/KB/recipes/plossum_commandline.aspx par Peter Palotas:
la source
Je suis récemment tombé sur l'implémentation de l'analyse de la ligne de commande FubuCore Je l'aime vraiment, les raisons étant:
Voici un exemple simple sur la façon de l'utiliser. Pour illustrer l'utilisation, j'ai écrit un utilitaire simple qui a deux commandes: - ajouter (ajoute un objet à une liste - un objet se compose d'un nom (chaîne), d'une valeur (int) et d'un drapeau booléen) - liste (listes tous les objets actuellement ajoutés)
Tout d'abord, j'ai écrit une classe Command pour la commande 'add':
Cette commande prend une instance CommandInput comme paramètre, donc je définis cela ensuite:
La commande suivante est 'list', qui est implémentée comme suit:
La commande 'list' ne prend aucun paramètre, j'ai donc défini une classe NullInput pour cela:
Il ne reste plus qu'à câbler ceci dans la méthode Main (), comme ceci:
Le programme fonctionne comme prévu, imprimant des conseils sur l'utilisation correcte au cas où des commandes ne seraient pas valides:
Et un exemple d'utilisation de la commande 'add':
la source
Commandlets Powershell.
Analyse effectuée par PowerShell sur la base des attributs spécifiés sur les commandlets, prise en charge des validations, des jeux de paramètres, du pipelining, du rapport d'erreurs, de l'aide et, mieux encore, des objets .NET renvoyés à utiliser dans d'autres commandlets.
Quelques liens que j'ai trouvé utiles pour commencer:
la source
C # CLI est une bibliothèque d'analyse d'arguments en ligne de commande très simple que j'ai écrite. C'est bien documenté et open source.
la source
Readme.mkd
fichier dans leDocumentation
dossier).L'analyseur de ligne de commande de Gengis est peut-être un peu obsolète, mais il est très complet et fonctionne assez bien pour moi.
la source
Je suggère la bibliothèque open source CSharpOptParse . Il analyse la ligne de commande et hydrate un objet .NET défini par l'utilisateur avec l'entrée de ligne de commande. Je me tourne toujours vers cette bibliothèque lors de l'écriture d'une application console C #.
la source
Veuillez utiliser le port .net de l'API apache commons cli. Cela fonctionne très bien.
http://sourceforge.net/projects/dotnetcli/
et l'API d'origine pour les concepts et l'introduction
http://commons.apache.org/cli/
la source
Une classe ad hoc très simple et facile à utiliser pour l'analyse en ligne de commande, qui prend en charge les arguments par défaut.
la source