본문 바로가기
프로그래밍/C#

C# 커맨드 라인(CommandLine) 파싱 라이브러리 소개

by bantomak 2023. 2. 17.
반응형

커맨드 라인 라이브러리 소개

보통 툴이나 프로그램을 만들면 유아이가 별도로 없다면 입력인자로 받아서 여러 처리를 진행하게 됩니다.

이때 있으면 유용한 라이브러리가 커맨드라인 파싱 라이브러리입니다.

 

이번에 제가 알게된 라이브러리는 Mono.Options라는 이름의 라이브러리입니다. 

 

라이브러리 링크로 이동

 

작고 가볍고 생각보다 기능이 많은거같아서 잠깐 써보았는데 벌써 마음에 들었습니다.

 

거의 대부분의 .Net 플렛폼에서 호환 가능

  • Full .NET Framework 4.0+ (Client Profile)
  • .NET Core 1.0
  • .NET Standard 1.6+
  • Portable Class Libraries (Profile 259)

 

설치 방법

비주얼 스튜디오 누겟(Nuget)으로 설치 

혹은

 

PM> Install-Package Mono.Options

 

해당 커맨드로 설치가 가능합니다.

 

사용 방법

using Mono.Options;

// these variables will be set when the command line is parsed
var verbosity = 0;
var shouldShowHelp = false;
var names = new List<string>();
var repeat = 1;

// these are the available options, note that they set the variables
var options = new OptionSet { 
    { "n|name=", "the name of someone to greet.", n => names.Add(n) }, 
    { "r|repeat=", "the number of times to repeat the greeting.", (int r) => repeat = r }, 
    { "v", "increase debug message verbosity", v => { if (v != null) ++verbosity; } }, 
    { "h|help", "show this message and exit", h => shouldShowHelp = h != null },
};

 

입력 받을 변수를 선언하고 알맞은 인자 이름을 작성해서 지정해주면 됩니다.

그리고 Parse 함수를 호출하기만 하면 됩니다.

 

List<string> extra;
try {
    // parse the command line
    extra = options.Parse(args);
} catch (OptionException e) {
    // output some error message
    Console.WriteLine(e.Message);
    return;
}

 

>> Test.exe --Name=myName -r 5

>> Test.exe --help

위와 같은 방식으로 커맨드라인 인자를 넣어주면 된다.

 

완전 심플!

댓글