Modifica como a macro Doskey passa argumentos para o comando com base nos argumentos passados para ele

4

Eu tenho uma macro doskey bem simples

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

Então eu poderia mudar do prompt de comando para o git shell em s

Mas às vezes eu só quero executar um único comando no shell e retornar à linha de comando. Para isso eu tenho que entrar na shell, fazer coisas, sair. Ou eu poderia modificar a macro doskey

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

Mas isso significaria que eu não posso usá-lo para fazer o primeiro agora, ou seja, enter shell, é para executar somente agora.

Eu queria saber se eu poderia ter uma escolha condicional entre os dois se eu tivesse ou não passado por outro argumento. Então, s faria o primeiro, mas s echo hello faria o segundo.

Existe uma maneira de fazer isso?

    
por laggingreflex 04.01.2015 / 11:48

1 resposta

7

Você pode usar qualquer comando CMD.EXE padrão em sua definição de macro. O comando IF pode testar se você tem pelo menos um parâmetro ultrapassado e se ramificar de acordo.

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 "$*"
    
por 04.01.2015 / 21:38