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 файлы.