몇 가지 명령 줄 인수를 전달해야하는 Windows 배치 스크립트를 만들어야합니다. 이러한 인수는 임의의 순서로 나타날 수 있지만 스크립트는 인수 이름을 기준으로 올바르게 선택해야합니다. 예 :
<scriptname> -age <agevalue> -gender <gender>
<scriptname> -gender <gender> -age <agevalue>
위의 두 가지 방법 중 하나로 스크립트를 호출 할 수 있지만 연령과 성별을 적절히 선택하여 변수에 할당해야합니다. 인수는 앞에 스위치 (예 : -age, -gender 등)로 식별 할 수 있습니다.
누군가 내부적으로 이것을 식별하는 예를 들어 주시겠습니까?
답변
불행히도 배치에는 bashgetops
와 같은 내장 함수 가 없습니다 . 그러나 자신의 가난한 사람의 변형을 구현할 수 있습니다.
:GETOPTS
if /I %~1 == --age set AGE=%2& shift
if /I %~1 == --gender set GENDER=%2& shift
shift
if not (%1)==() goto GETOPTS
답변
Powershell로 할 수 있습니까? 또는 배치가 필요합니까? Powershell을 사용하면 쉽고 편리하게 스크립트 상단에 이와 같은 것을 추가하면 각 매개 변수를 임의의 순서로 호출 할 수 있습니다.
param (
[string]$Age,
[string]$Gender
)
일괄 처리로 수행 할 수 있지만 많은 매개 변수 검사가 필요합니다. 다음은이를 수행하는 일부 일괄 처리 스크립트 링크입니다.
http://www.ericphelps.com/batch/samples/arguments.bat.txt
(중복 가능)