Open
Description
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
[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<CommandLineOptionsOpen>(args).WithParsed<CommandLineOptionsOpen>(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
Metadata
Metadata
Assignees
Labels
No labels