댓글 쓰기 권한이 없습니다. 로그인 하시겠습니까?
C#
2016.01.04 10:35
C#에서 명령줄 인수(command line argument) 사용하기
조회 수 14296 댓글 0
Program.cs의 Main을 변경함 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 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/ ) 도 있음. 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 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 "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 ] Dreamy의 코드 스크랩내가 모으고 내가 보는
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Designed by sketchbooks.co.kr / sketchbook5 board skin
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5