visual studio pass parser parameter debug c# .net command-line arguments

studio - debug command line arguments c#



Buscando un analizador de argumentos de línea de comandos para.NET (12)

Estoy buscando un analizador de argumentos de línea de comandos, como "Analizador de línea de comandos" de http://www.sellsbrothers.com/tools/Genghis/ .

Características que estoy buscando:

  • Autogeneración de uso
  • Debería poder verificar los parámetros requeridos y opcionales
  • Los parámetros deben ser compatibles con IEnumerable con soporte separador
  • Debería soportar los parámetros del indicador
  • Sería bueno admitir la combinación de parámetros como "/ fx" == "/ f / x"
  • Sería bueno no forzar un espacio después de un parámetro como "/ftest.txt" == "/ f test.txt"

PD: "Analizador de línea de comandos" es bastante bueno, realmente me gusta su diseño, pero no hay documentación, no hay nuevas actualizaciones y no pude hacer ciertas cosas, como verificar los parámetros necesarios.


Apuesto a que esto no es exactamente lo que estás buscando, pero:

Alguien aquí tuvo ese problema, y ​​su primer pensamiento fue "¡oye, ocaml tiene uno muy bueno!", Y lo transfirió rápidamente a F #.


Eche un vistazo a ndesk.options.

Se llama Mono.Options ahora.


Estoy usando el analizador del libro de cocina C # 3.0.

Todos los ejemplos de este libro se pueden descargar aquí: http://examples.oreilly.com/9780596516109/

Busque ''Argumentos'' y lo encontrará. Tienes que hacer algunos pequeños cambios de código para sacarlo de todo en tu propia clase, pero este no es un gran problema.

Admite todos sus puntos, excepto los dos últimos (combinación de parámetros y espacio faltante).


La biblioteca de BizArk contiene un analizador de línea de comandos.

Básicamente, solo crea una clase que hereda de CmdLineObject, agrega las propiedades que desea rellenar desde la línea de comandos, agrega un CmdLineArgAttribute a las propiedades y luego llama a Initialize en su programa. Es compatible con los argumentos de ClickOnce URL también!

Características (del sitio) ...

  • Inicialización automática: las propiedades de clase se establecen automáticamente en función de los argumentos de la línea de comandos.
  • Propiedades predeterminadas: envíe un valor sin especificar el nombre de la propiedad.
  • Conversión de valor: utiliza la potente clase ConvertEx también incluida en BizArk para convertir valores al tipo correcto.
  • Banderas booleanas. Los indicadores se pueden especificar simplemente usando el argumento (ex, / b para verdadero y / b- para falso) o agregando el valor verdadero / falso, sí / no, etc.
  • Arreglos de argumentos Simplemente agregue varios valores después del nombre de la línea de comando para establecer una propiedad que se define como una matriz. Ex, / x 1 2 3 poblará x con la matriz {1, 2, 3} (suponiendo que x se define como una matriz de enteros).
  • Alias ​​de línea de comandos: una propiedad puede admitir múltiples alias de línea de comandos para él. Por ejemplo, ¿Ayuda usa el alias?
  • Reconocimiento parcial del nombre No es necesario que deletree el nombre completo o el alias, solo deletree lo suficiente para que el analizador elimine la ambigüedad de la propiedad / alias de los demás.
  • Admite ClickOnce: puede inicializar propiedades incluso cuando se especifican como la cadena de consulta en una URL para aplicaciones implementadas ClickOnce. El método de inicialización de la línea de comandos detectará si se está ejecutando como ClickOnce o no, por lo que no es necesario que el código cambie al usarlo.
  • Crea automáticamente /? ayuda: Esto incluye un buen formato que tiene en cuenta el ancho de la consola.
  • Cargar / guardar argumentos de línea de comandos en un archivo: esto es especialmente útil si tiene múltiples conjuntos grandes y complejos de argumentos de línea de comandos que desea ejecutar varias veces.

Lamentablemente, no existe un soporte integrado para manejarlo de manera estándar. ¿Has mirado en PowerShell? Apuesto a que hay una clase en ese caparazón que hace exactamente lo que quieres o algo similar.


Mi biblioteca favorita de análisis de línea de comandos de terceros es Command Line Parser y supongo que es a la que se refiere. La versión más reciente fue hace menos de 2 meses y hay confirmaciones regulares. Si quieres una oferta más madura, puedes sacar la biblioteca de la consola en el proyecto mono (lo siento, parece que no puedo encontrar un enlace directo al espacio de nombres en este momento, pero es parte del framework mono)


Puede que te guste mi Rug.Cmd

Analizador de argumentos de línea de comando fácil de usar y expandible. Controles: Bool, Plus / Minus, String, String List, CSV, Enumeration.

Construido en ''/?'' modo de ayuda

Construido en ''/ ??'' y modos de generador de documentos ''/? 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); } } }

Editar: este es mi proyecto y, como tal, esta respuesta no debe verse como un respaldo de un tercero. Dicho esto, lo uso para cada programa basado en línea de comandos que escribo, es de código abierto y espero que otros se beneficien de él.


Soy fanático del puerto C # para OptParse, una biblioteca integrada en Python. Es bastante fácil de usar en comparación con la mayoría de las otras sugerencias aquí y contiene una serie de características útiles, además del análisis automático.


Sugiero ndesk.org/Options

mira aquí:

¿La mejor forma de analizar argumentos de línea de comando en C #?


Tenga en cuenta que una vez que comience a usar este analizador, tendrá que mantenerlo usted mismo o depender de otra persona para mantenerlo. Puede que sea mejor que escriba la suya, comenzando por sus requisitos más críticos e inmediatos. Descubrí que no requiere demasiado trabajo producir un análisis de línea de comandos bastante complicado para la mayoría de las aplicaciones basadas en consola en las que he trabajado.

También descubrí que cuando el análisis se vuelve demasiado complicado, puede ser hora de dejar de usar la línea de comando.


Un analizador de línea de comandos C popular y bastante completo es GNU getopt . Esto ha sido portado (o clonado) para C # /. Net varias veces. Algunos de estos incluyen:

¡Elige tu opción! Hay varios otros, y Google puede informarte sobre ellos,


Editar: como señala fatcat1111, esta función no incluía la versión final de .net 4.0.

C # 4.0 tiene uno muy bueno. Probablemente aún no sea muy útil, pero es posible que desee considerar algo que hará que el salto a la versión integrada sea fácil cuando salga a la luz. Bart De Smet habló de ello en su blog B #