using System.Collections.Generic;
public static void UseCase(string title, string argsCommand)
Console.WriteLine("------Case: " + title + "-----");
var parser = new Parser(with =>
var args = argsCommand.Split();
var result = parser.ParseArguments<RenameOptions,object>(args);
result.WithParsed(options => options.Dump()).WithNotParsed(HandleError);
public static void Main()
UseCase("prefix", "rename --prefix aaa");
UseCase("suffix", "rename --suffix bbb");
UseCase("suffix-Prefix", "rename --suffix bbb --prefix aaa");
UseCase("none", "rename");
static void HandleError(IEnumerable<Error> errors)
Console.WriteLine("Parser error");
public sealed class RenameOptions
[Option("prefix", HelpText = "Prefix to append to file name", SetName = "prefix", Required = true)]
public string Prefix { get; set; }
[Option("suffix", HelpText = "Suffix to append to file name", SetName = "suffix", Required = true)]
public string Suffix { get; set; }