public static void Main()
string[] args = {"-s", "sample\\sourcepath", "-e", "sample\\destinationpath", "-p", "*.log*"};
var options = new Options();
if (!CommandLine.Parser.Default.ParseArguments(args, options))
Console.WriteLine("invalid Arguments");
Console.WriteLine("Usage:");
Console.WriteLine(options.GetUsage());
Console.WriteLine(options.ToString());
[Option('s', "source", Required = true, HelpText = "Source Path")]
[Option('e', "destination", Required = true, HelpText = "Destination Path")]
public string Destination
[Option('d', "days", Required = false, DefaultValue = 30, HelpText = "no of days")]
[Option('h', "hours", Required = false, HelpText = "no of hours")]
[Option('m', "minutes", Required = false, HelpText = "no of minutes")]
[Option('p', "pattern", Required = true, HelpText = "file name pattern")]
var usage = new StringBuilder();
usage.AppendLine("ApplicationName.exe -s <source> -e <destination> [-d <no of days>] -p <pattern>");
public override string ToString()
return string.Format("Source = {0}\tDestination = {1}\tPattern = {2}\tNoOfDays = {3}", this.Source, this.Destination, this.Pattern, this.NoOfDays);