Program.cs의 Main을 변경함
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | static class Program { /// <summary> /// 해당 응용 프로그램의 주 진입점입니다. /// </summary> [STAThread] static void Main( string [] args) { foreach ( string arg in args) { Console.WriteLine(arg); } .... } } |
Parsing은 NDesk.Options (Documentation) 또는 Mono.Options을 사용하는 것이 아주 좋음
- http://www.ndesk.org/doc/ndesk-options/
- https://github.com/mono/mono/blob/master/mcs/class/Mono.Options/Mono.Options/Options.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | bool show_help = false ; List< string > names = new List< string > (); int repeat = 1; var p = new OptionSet () { { "n|name=" , "the {NAME} of someone to greet." , v => names.Add (v) }, { "r|repeat=" , "the number of {TIMES} to repeat the greeting.\n" + "this must be an integer." , ( int v) => repeat = v }, { "v" , "increase debug message verbosity" , v => { if (v != null ) ++verbosity; } }, { "h|help" , "show this message and exit" , v => show_help = v != null }, }; List< string > extra; try { extra = p.Parse (args); } catch (OptionException e) { Console.Write ( "greet: " ); Console.WriteLine (e.Message); Console.WriteLine ( "Try `greet --help' for more information." ); return ; } |
Command Line Parser Library ( http://commandline.codeplex.com/ ) 도 있음.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | class Options { [Option( "i" , "input" , Required = true , HelpText = "Input file to read." )] public string InputFile { get ; set ; } [Option( null , "length" , HelpText = "The maximum number of bytes to process." )] public int MaximumLenght { get ; set ; } [Option( "v" , null , HelpText = "Print details during execution." )] public bool Verbose { get ; set ; } [HelpOption(HelpText = "Display this help screen." )] public string GetUsage() { var usage = new StringBuilder(); usage.AppendLine( "Quickstart Application 1.0" ); usage.AppendLine( "Read user manual for usage instructions..." ); return usage.ToString(); } } |
Examples
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | using System; class Program { static void Main( string [] args) { if (args == null ) { Console.WriteLine( "args is null" ); // Check for null array } else { Console.Write( "args length is " ); Console.WriteLine(args.Length); // Write array length for ( int i = 0; i < args.Length; i++) // Loop through array { string argument = args[i]; Console.Write( "args index " ); Console.Write(i); // Write index Console.Write( " is [" ); Console.Write(argument); // Write string Console.WriteLine( "]" ); } } Console.ReadLine(); } } |
==> Output
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | "C:\ConsoleApplication1.exe" a b c args length is 3 args index 0 is [a] args index 1 is [b] args index 2 is [c] "C:\ConsoleApplication1.exe" a b c args length is 3 args index 0 is [a] args index 1 is [b] args index 2 is [c] "C:\\ConsoleApplication1.exe" http://www.dotnetperls.com/ args length is 1 args index 0 is [http://www.dotnetperls.com/] "C:\ConsoleApplication1.exe" "Literal test " args length is 1 args index 0 is [Literal test ] |
Designed by sketchbooks.co.kr / sketchbook5 board skin
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5