2017-11-21 1 views
0

PowerShell 명령 줄 인수를 구문 분석 할 오픈 소스 Python 프로젝트가 있는지 궁금합니다.파이썬 : PowerShell 명령 줄 인수 파서

는 파이썬이 내장 된 것을 명령 줄 인수를 구문 분석 할 수있는 모듈 argparse 알고 있지만 PowerShell을 인수로 :

  • 부분/완전 인수는 여전히 유효
  • 대소 문자를 구분하지
예를 들어

, Windows 콘솔에,이 모두 유효합니다

> powershell.exe -Command "[console]::WriteLine(\"Hello\")" 
Hello 
> powershell.exe -Comman "[console]::WriteLine(\"Hello\")" 
Hello 
> powershell.exe -cOMm "[console]::WriteLine(\"Hello\")" 
Hello 
> powershell.exe -c "[console]::WriteLine(\"Hello\")" 
Hello 

또는이 구문 분석을 수행 할 오픈 소스 프로젝트가 없다면 무엇을 권하고 싶습니까? '--com'등 모든 작업 - '명령'

parser.add_argument('-c','--command'); 
parser.add_argument('-domain'); 

'-c':와

+0

왜 그렇습니까? – TheIncorrigible1

+1

질문을 완전히 이해하지 못했습니다. 그러나'argparse'는 플래그에 대한 약어를 허용합니다 (최근 버전에서는 이것을 해제 할 수 있습니다). 대소 문자를 구별 합니다만,'sys.argv'리스트를 미리 소문자로 바꾸어서 모든 플래그를 소환 할 수 있습니다. – hpaulj

+0

@hpaulj 예, argparse는 플래그에 대한 약어를 허용한다는 것을 알고 있습니다. add_argument ('- Command', '-c', ...),하지만 PowerShell과 같은 문법 (약자의 모든 조합을 허용하는 문법)으로 뭔가 궁금하다. 하나씩 지정해야한다. 하드 코딩 된 솔루션과 비슷합니다. –

답변

0

. '-com'은 그렇지 않습니다.

'-domain', '-d', '--dom'도 작동합니다.

parser.add_argument('-c','-command') 

에는 두 개의 단일 대시 플래그 사이에 모호성이 있으므로 몇 가지 문제가 있습니다.

argparse (POSIX 표준에 기반)의 경우 이상적인 것은 단일 대시와 문자 짧은 플래그와 이중 대시를 사용하는 것입니다.

짧은 플래그는 연결될 수 있습니다. 긴 것들은 '='`을 허용합니다. '길이'는 둘 사이의 균열에 해당합니다. 그것은 작동하지만 예측할 수는 없습니다.

+0

실제로 사용을 위해,'parser.add_argument ('- command')'는 _command_, _comman_, ..., _c_을 처리 할 수 ​​있습니다. 그러나 대소 문자 구분은 문제를 남겨 둡니다. 기본적으로 'argparse'플래그가 없으므로 대소 문자 구분이 문제가됩니다. 그래서 나는 이전에 언급 한 것처럼'argv'를 수동으로 조정해야 할 것 같아요. –