forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Программное обеспечение / Software (http://forum.boolean.name/forumdisplay.php?f=164)
-   -   Ассоциация файлов по расширению с программами (Windows 7) (http://forum.boolean.name/showthread.php?t=19398)

Phantom 09.09.2014 01:47

Ассоциация файлов по расширению с программами (Windows 7)
 
В который уже раз бьюсь с одной и той же проблемой. Раньше кое-как каким-то чудом получалось получить желаемый результат (тоже каким-то нетривиальным способом), а сейчас уже час бьюсь и не могу.

Есть несколько PHP интерпретаторов разных версий, хочу, чтобы файлы с различными расширениями открывались через разные интерпретаторы.
Пример:

.php52 -> C:\php52\php.exe
.php53 -> C:\php53\php.exe
.php54 -> C:\php54\php.exe
.php55 -> C:\php55\php.exe
.php56 -> C:\php56\php.exe

Ассоциация устанавливается только на один из php.exe, но на последующие не получается (видимо из-за одинакого имени exe файла или какой-то метаинформации, которая у файлов почему-то совпадает). Не помогает абсолютно ничего: ни "открыть с помощью..." (при выборе нужного php.exe файла винда думает, что я выбрал тот, первый php.exe файл, с которым уже проассоциированы другие файлы, хотя он лежит совсем в другой папке), ни команды ASSOC и FTYPE, - даже скачал какую-то программу, которая удаляет ассоциации файлов, она тоже не помогла. Но каким-то чудесным образом раньше мне удавалось решить эту проблему, но не помню каким. Думаю, что можно решить, изменив имя с php.exe на phpXX.exe по номеру версии, но как-то это не эстетично и проблемы какие-то могут появиться. Да и хочется уже докопаться до истины и побороть очередной глюк винды.

Phantom 09.09.2014 02:58

Ответ: Ассоциация файлов по расширению с программами (Windows 7)
 
Таки смог побороть проблему сам. Снова. Порядок действий:

1) Поиском по реестру ищем упоминания нужных расширений файлов и удаляем найденные разделы (главное не удалить что-то, не относящееся к расширению, придётся трудно, если расширение представляет собой часть каких-то распространённых слов, которые будут засорять результаты поиска, впрочем, вроде бы можно искать по имени расширения с точкой вначале, тогда шанс выпадения неправильных результатов меньше).
2) Командами ASSOC и FTYPE проставляем нужные ассоциации. Пример:
PHP код:

assoc .php55exe=PHP55File
ftype PHP55File
=C:\php55\php.exe -"%%1" -- %%~

Было бы круто автоматизировать это всё и написать батник, который будет сначала удалять определённые разделы реестра (а их там нашлось штук 10 на одно расширение), а после чего проставлять указанные ассоциации. Но хрен его знает где находятся все эти разделы, чтобы удалить их все наверняка. Можно снова поиском также поискать и записать вручную пути, но не факт, что у другого человека на другом компьютере будет насрано в реестре только в этих же самых местах, винда непредсказуемая.


Часовой пояс GMT +4, время: 10:33.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot