在 cygwin CLI 上运行没有 .bat 扩展名的 .bat 文件

在 cygwin CLI 上运行没有 .bat 扩展名的 .bat 文件

我一直在寻找一种从 cygwin 命令行运行 dos 批处理文件的方法,而无需输入扩展名。

那可能吗?

目前,我必须输入扩展名,否则 cygwin 找不到批处理文件。

答案1

我找不到其他解决方案,所以我按照 golimar 所说的做了。这是一个简单的脚本,它在特定目录中
查找文件并创建别名。 例如,如果有一个文件,就会有一个指向它的别名。 将其添加到您的或您正在使用的任何内容中:.bat
git.bat/some/pathgit
~/.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 $?

相关内容