Executando o arquivo .bat no cygwin CLI sem a extensão .bat

3

Eu tenho procurado uma maneira de executar dos arquivos em lote a partir da linha de comando do cygwin sem ter que inserir a extensão.

Isso seria possível?

Atualmente, tenho que inserir a extensão. Caso contrário, o cygwin não encontrará o arquivo em lote.

    
por Richard Lalancette 20.12.2012 / 02:50

2 respostas

2

Não encontrei outra solução, então fiz o que o golimar disse.
Aqui está um script simples que procura .bat arquivos em um diretório específico e cria aliases.
Por exemplo, se houver um arquivo git.bat em /some/path , haverá um alias git que aponta para ele.
Adicione isso ao seu ~/.bashrc ou ~/.zshrc ou o que você estiver usando:

for f in /some/path/*.bat; do alias 'basename "${f%.bat}"'=$f; done
    
por 10.02.2015 / 15:13
2

outra alternativa é usar a função interna bash command_not_found_handle() da seguinte forma:

command_not_found_handle() {
    echo "bash: $1: command_not_found_handle()"  >&2
    LOWERCASE_CMD=$(echo "$1" | tr '[A-Z]' '[a-z]')
    shift
    [ -f /cygdrive/c/CLIPrograms/${LOWERCASE_CMD}.bat ] && /cygdrive/c/CLIPrograms/${LOWERCASE_CMD}.bat "$@"
    return $?
    
por 13.07.2016 / 07:33

Tags