3

Я искал способ запуска командных файлов DOS из командной строки Cygwin без ввода расширения.

Это будет возможно?

В настоящее время я должен ввести расширение, иначе Cygwin не найдет командный файл.

2 ответа2

2

Я не нашел другого решения, поэтому я сделал то, что сказал Голимар.
Вот простой скрипт, который ищет файлы .bat в определенном каталоге и создает псевдонимы.
Например, если в git.bat есть файл /some/path будет псевдоним git который указывает на него.
Добавьте это к вашему ~/.bashrc или ~/.zshrc или к тому, что вы используете:

for f in /some/path/*.bat; do alias `basename "${f%.bat}"`=$f; done
2

Другой обходной путь - использовать внутреннюю функцию bash command_not_found_handle() следующим образом:

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 $?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .