Doskey 매크로가 전달 된 인수를 기반으로 명령에 인수를 전달하는 방식 수정


5

엄청나게 간단한 도스 키 매크로가 있습니다

DOSKEY s="C:\Program Files (x86)\Git\bin\sh.exe" --login

그래서 명령 프롬프트에서 git shell로 전환 할 수 있습니다. s

그러나 때로는 쉘에서 단일 명령 만 실행하고 명령 줄로 돌아가고 싶습니다. 이를 위해 나는 쉘에 들어가고, 일을하고, 끝내야합니다. 또는 doskey 매크로를 수정할 수 있습니다

DOSKEY s="C:\Program Files (x86)\Git\bin\sh.exe" --login -c "$*"

그러나 내가 지금 이전을 수행하는 데 사용할 수 없습니다 의미, 즉 입력 쉘을, 그것을 실행하기위한입니다 지금.

다른 인수를 통과했는지 여부에 따라 두 가지 중에서 조건부로 선택할 수 있는지 궁금합니다. 전자도 마찬가지 s지만 s echo hello후자는 그렇습니다.

이것을 할 수있는 방법이 있습니까?

답변:


7

매크로 정의 내에서 표준 CMD.EXE 명령을 사용할 수 있습니다. IF 명령은 하나 이상의 매개 변수가 전달되고 그에 따라 분기되는지 테스트 할 수 있습니다.

doskey s=if $1. equ . ("C:\Program Files (x86)\Git\bin\sh.exe" --login) else "C:\Program Files (x86)\Git\bin\sh.exe" --login -c "$*"

1
이 명령의 작동 방식에 대한 간단한 설명을 추가하십시오.
Nifle

1
$ *는 실행 명령에 's'다음에 입력 된 모든 것을 넣습니다.
Alfergon
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.