Estoy buscando una biblioteca getopt para C#. Hasta ahora encontré algunos (phpguru, XGetOptCS, getoptfordotnet) pero estos parecen más como intentos sin terminar que solo son compatibles con una parte del getopt de C. ¿Hay una implementación completa de getopt C#?Biblioteca GetOpt para C#
Respuesta
Aquí es una implementación .NET de getopt: http://www.codeplex.com/getopt
No es getopt, pero puede intentar NConsoler. Utiliza atributos para definir argumentos y acciones.
Here es algo que escribí, funciona bastante bien, y tiene bastantes funciones para la pequeña cantidad de código. No es getopts sin embargo, pero puede adaptarse a sus necesidades.
No dude en hacer algunas preguntas.
El Proyecto Mono tiene (o más bien tenía) uno basado en atributos, pero la última vez que lo revisé se marcó como obsoleto. Pero dado que es de código abierto, es posible que pueda extraer el código y usarlo usted mismo.
El analizador de líneas cmd en Mono sería genial en el BCL. Lo uso todo el tiempo y creo que es genial. –
Para la posteridad:
CommandParser is another one con una licencia BSD
Miguel de Icaza raves about Mono.Options. Puede usar el nuget package, o simplemente copiar el single C# source file en su proyecto.
Para el registro, NUnit incluye un sencillo de un solo archivo del analizador de línea de comandos en src\ClientUtilities\util\CommandLineOptions.cs
(véase el ejemplo de uso en ConsoleRunner.cs
y Runner.cs
situado bajo src\ConsoleRunner\nunit-console
). El archivo en sí no incluye ninguna información de licencia, y un link en su "ascendente" parece estar muerto, por lo que su estado legal es incierto.
parámetros bandera El analizador mediante named (como /verbose
), parámetros nombran con valores (como /filename:bar.txt
) y parámetros sin nombre, es decir, tanto en el estilo de cómo Windows Scripting Host interprets them. Las opciones pueden tener el prefijo /
, -
y --
.
Un amigo mío sugirió docopt.net, una biblioteca de análisis de argumentos de línea de comandos basada en la biblioteca docopt para Node.JS. Es muy simple de usar, pero avanzado y analiza argumentos basados en la cadena de ayuda que escribe.
He aquí algunos ejemplos de código:
using System;
using DocoptNet;
namespace MyProgram
{
static class Program
{
static void Main(string[] args)
{
// Usage string
string usage = @"This program does this thing.
Usage:
program set <something>
program do <something> [-o <optionalthing>]
program do <something> [somethingelse]";
try
{
var arguments = new Docopt().Apply(usage, args, version: "My program v0.1.0", exit: false);
foreach(var argument in arguments)
Console.WriteLine("{0} = {1}", argument.Key, argument.Value);
}
catch(Exception ex)
{
//Parser errors are thrown as exceptions.
Console.WriteLine(ex.Message);
}
}
}
}
Puede encontrar documentación para ello (incluyendo su formato de mensaje de ayuda), tanto en el primer enlace y here.
Espero que ayude a alguien!
- 1. C getopt valor múltiple
- 2. biblioteca de procesamiento de línea de comandos - getopt
- 3. ¿Hay una implementación de "getopt" para Delphi?
- 4. Getopt multiplataforma para un script de shell
- 5. Biblioteca JSON para C#
- 6. Biblioteca P2P para C++
- 7. biblioteca C++ para XMLRPC
- 8. usando getopt con gdb
- 9. getopt() en VC++
- 10. ¿Procesar valores múltiples para una sola opción usando getopt/optparse?
- 11. Biblioteca XML-RPC para C++
- 12. Biblioteca estándar madura para C
- 13. Biblioteca de UUID para C?
- 14. biblioteca de audio para C#
- 15. Biblioteca de registro para C
- 16. Biblioteca de criptografía para C++
- 17. Biblioteca NFC C# para Windows
- 18. declaración getopt implícita en Solaris?
- 19. getopt no analiza argumentos opcionales para los parámetros
- 20. comportamiento getopt-like en Go
- 21. biblioteca c/C++ NLP
- 22. C# biblioteca para Mindstorms NXT de Lego
- 23. C# Biblioteca para una fácil reflexión dinámica
- 24. Biblioteca C++ para cargar archivos Excel (.xls)
- 25. ¿Hay una biblioteca LINQ para C++?
- 26. Biblioteca de serialización YAML para C++?
- 27. Biblioteca JSON-RPC no GPL para C++
- 28. Biblioteca de cifrado para Objective-C
- 29. Biblioteca C# para SSH y Telnet
- 30. Biblioteca OAuth C# para Google, Yahoo! Twitter
el enlace está roto –