commandlineparser / commandlineparser/commandline
Parse Single dash option as dashdash option
- Lingua principale
- C#
- Stelle
- 4.8k
- Fork
- 478
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
Hi everyone,
I'm trying to parse a command line (imposed, no way to change it) which are like
```
myexe.exe -Url=https://blabla.com/ --AppName=val1 -e testCase -monoapp Open -Ctx "default ctx"
```
As you can see, there is a lot of different case:
* Some single dash option with a long name with space as separator
* Some single dash option with a long name with equals as separator
* Single dash option with short name with space as separator
* .....
And I wasn't able to parse it because it seems that when there is just a dash option, it mustn't be a long name. ( I have a lot of `UnknownOptionError` which seem to come from that)

So I have a very simple code to test
```C#
[Verb("Open")]
public class CommandLineOptions
{
[Option("Url", Separator = '=')]
public string Url { get; set; }
[Option("AppName", Separator = '=')]
public string AppName { get; set; }
[Option('e',"env", Separator = ' ')]
public string Env { get; set; }
[Option("monoapp")]
public bool Monoapp { get; set; }
[Option("Ctx", Separator = ' ')]
public string Ctx { get; set; }
}
....... In another file but in the same assembly
static void Main(string[] args)
{
var commandLineOptions = new CommandLineOptionsOpen();
var parser = new Parser(with =>
{
with.EnableDashDash = false; // tested as true, same result
with.IgnoreUnknownArguments = false;
});
var parseResult = parser.ParseArguments(args).WithParsed(result => commandLineOptions = result);
System.Console.WriteLine(parseResult.Tag); // NotParsed
System.Console.WriteLine(commandLineOptions.Url); // Null like all others values
}
```
So I did something wrong ? There is a way to parse this command line ?
Thanks in advance for your help
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Valutazione
Questa issue non è ancora stata valutata.