Git Bash и поиск файлов.bat в PATH

Я использую Git для Windows (он же "Git Bash") и заметил несоответствие в том, как он обрабатывает поиск сценариев.bat в PATH переменная. Хотя я могу выполнить скрипт.bat, который находится в моем PATH просто набрав имя файла, я не могу получить путь к файлу, вызвав which,

Например, я только что установил PHP PEAR для Windows под C:\pear\ и добавил, что к моему PATH (отредактировав переменную системного пути в Панели управления Windows). Если я введу команду, которая начинается с pear, он находит пакетный скрипт C:\pear\pear.bat и выполняет его без каких-либо затруднений. Но если я войду which pear, или даже which pear.bat, это не может найти это. Конечно, where pear дает мне то, что я хочу с where это встроенная команда Windows, но почему я должен помнить, что нужно использовать другую команду для пакетных файлов?

Странно что which не может найти.bat файлы, но у него нет проблем с поиском.exe файлов:

$ which explorer
/c/WINDOWS/explorer
$ cygpath -w /c/WINDOWS/explorer
C:\WINDOWS\explorer.exe
$ which notepad++
/c/Program Files (x86)/Notepad++/notepad++
$ cygpath -w '/c/Program Files (x86)/Notepad++/notepad++'
C:\Program Files (x86)\Notepad++\notepad++.exe

Исходя из моего ограниченного понимания того, как работает Git Bash, очевидно, что большинство его команд построены с использованием MINGW, но некоторые построены с использованием MSYS2? Так что я полагаю, что вина лежит на одном из этих двух. Мне просто любопытно узнать, в чем причина этого несоответствия. Кроме того, я был бы признателен, если у кого-нибудь есть идеи для кастомного Bash which функция, которая может найти.bat файлы.

0 ответов

Другие вопросы по тегам