Если две отдельные директории PATH содержат исполняемый файл с одинаковым именем, как Windows выберет?

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

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

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

2 ответа

Решение

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

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

От 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.

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