2014-03-04 2 views
2

Visual Studio C#에서 작성되고 컴파일 된 응용 프로그램에 대한 사용자 지정 명령 프롬프트 매개 변수를 만들 수 있습니까? 내 응용 프로그램 사용자가 명령 줄을 사용하여 작업을 수행 할 수 있기를 바랍니다.사용자 지정 CMD 명령

예를 들어, 사용자가 parameter에 할당 된 코드를 수행하려면 CMD application_name.exe -parameter을 입력합니다.

+0

물론 이것을 수행 할 수있는 기본 방법이 있지만 [docopt.net] (https://github.com/docopt/docopt.net)을 사용하고 싶습니다. 너겟 (Nuget)에서 사용할 수 있습니다. –

답변

6

예, 여기가 string[] args 인 경우는 Program.cs입니다.

Visual Studio의 콘솔 응용 프로그램 템플릿에서 응용 프로그램을 만드는 것이 가장 쉬운 방법입니다.

이 작업을 수행하려면

  1. 이동 후 파일 -> 새 프로젝트 ...
  2. 이 작성을 완료 확인을 히트
  3. 이름 솔루션 사용 가능한 템플릿 목록에서
  4. 선택 Console Application 프로젝트

이렇게하면 모든 참조가 필요하고 Program.cs 클래스 제대로 설정되었습니다. 입력 할 수 있습니다

static void Main(string[] args) 
{ 
    if (args.Length <= 0) //Checking the Length helps avoid NullReferenceException at args[0] 
    { 
     //Default behavior of your program without parameters 
    } 
    else 
    { 
     if (args[0] == "/?") 
     { 
      //Show Help Manual 
     } 
     if (args[0] == "/d") 
     { 
      //Do something else 
     } 
     //etc 
    } 
} 

그런 다음 명령에서 사용자에게 메시지를 표시 : 여기

는 명령 줄에서 매개 변수를 허용하기 위해 프로그램의 Main 방법으로 할 수있는 일의 사이비의 예입니다

: 제거 답변에서 언급 한 바와 같이

yourProgamName.exe /? 
yourProgramName.exe /d 

는 여기에 복잡한 명령 줄 옵션을 처리하기위한 좋은 라이브러리가

+1

적어도 하나의 arg가 전달되었는지 확인하고 싶을 수도 있습니다. 첫 번째 if 문을'if (args.Length == 0 || args [0] == "/?")'로 변경하면 '/?'를하거나 아무런 인수도 사용하지 않으면 도움이됩니다. –

+0

인수 및 인수 구문 분석을 더 잘/더 쉽게 지원하려면 NDesk 옵션을 확인하십시오. http://www.ndesk.org/Options – Lloyd

+0

@Lloyd 예, 알고 있습니다. 그러나 OP가있는 것처럼 간단한 예를 계속 유지할 것이라고 생각했습니다. 초보자. –

0

"args"매개 변수는 기본 메소드에서 사용됩니다.

사용자가 "application_name.exe -parameter"를 실행하면 args [0]은 "-parameter"가됩니다. 이를 사용하여 응용 프로그램을 올바른 코드로 분기 할 수 있습니다.

많은 명령 행 매개 변수/인수를 처리하기위한 예제와 좋은 라이브러리를 보려면 this question을 확인하십시오.

0

그리고 어떤 이유로 main()에 액세스 할 수없는 경우 Environment.CommandLine에서 명령 줄을 가져올 수 있습니다.