2

Я нахожусь в процессе обновления PEAR (PHP) в моей системе. Скрипт обновления побуждает меня добавить "..\PHP\PEAR "в мой путь, чтобы я мог использовать" pear.bat ". Тем не менее, я уже могу использовать pear.bat.

Просматривая свой путь PATH, я вижу, что у меня нет каталогов PEAR, только мой каталог PHP. Открывая мой каталог PHP, я вижу, что в базе есть «pear.bat». Но в подпапке PEAR PHP также есть pear.bat. Мне интересно, если я потерял установку PEAR.

Я отвлекся. Так что, если я уйду ..\PHP в моем пути, но также добавить ..\PHP\PEAR - у каждого из них есть "pear.bat" - какой из них "выберет" Windows? Как решает Windows?

2 ответа2

3

Первый матч выигрывает. pear.bat в каталоге, который находится на первом месте в %PATH% это тот, который выполняется:

  • PATH=..\PHP\PEAR;..\PHP: ..\PHP\PEAR\pear.bat выполняется
  • PATH=..\PHP;..\PHP\PEAR: ..\PHP\pear.bat выполняется
3

От http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/path.mspx?mfr=true:

Два или более идентичных имени файла в пути

Если в пути команд имеется два или более файлов с одинаковыми именем и расширением, Windows XP сначала ищет указанное имя файла в текущем каталоге, а затем ищет каталоги в пути команд в том порядке, в котором они перечислены в ПУТИ.

Согласен, это относится к Windows XP (я не могу найти никакой информации о других версиях Windows), но я не думаю, что это поведение изменилось.

РЕДАКТИРОВАТЬ: я мог бы найти некоторую информацию для Windows Server 2008 и Vista здесь: http://technet.microsoft.com/en-us/library/cc753427%28v=ws.10%29.aspx (почти тот же текст, что и выше):

Если два или более файлов в пути команды имеют одинаковые имя и расширение, путь сначала ищет указанное имя файла в текущем каталоге.Затем выполняется поиск каталогов в пути команды в том порядке, в котором они перечислены в переменной среды PATH.

кажется, подтверждает предположение, что поведение не изменилось в разных версиях Windows.

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