Предположим, я запускаю cmd и открываю приложение, набрав, например, start document.pdf

Я хочу получить точный путь к исполняемому файлу, который открывает файлы .pdf

Конечно, я мог бы искать всю систему для исполняемого файла, но я полагаю, что так будет быстрее, потому что путь где-то уже сохранен

Я не знаю, если это имеет значение, но я использую Windows 7

2 ответа2

5

Вы можете получить эту информацию, используя два инструмента командной строки: assoc и ftype:

помогите ассоциировать
Отображает или изменяет ассоциации расширений файлов

помогите ftype
Отображает или изменяет типы файлов, используемые в ассоциациях расширений файлов.

Вы можете объединить их для получения необходимой информации:
for /f "delims== tokens=2" %a in ('assoc .pdf') do @ftype %a

Запуск этого прямо из командной строки должен дать вам путь и параметры программы, зарегистрированной для файлов .pdf

1

К сожалению, местоположение exe обычно определяется в реестре, например. У меня .txt определяется как открытие с "notepad++".

Поэтому, чтобы найти ассоциацию файла, я должен пойти:

"Open Control Panel > Control Panel Home > Default Programs > Set Associations".

Оттуда будет видно, что Notepad++ - моя программа по умолчанию.

Затем я должен был бы пойти в реестр для Notepad++, например:

"HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Notepad++"

И увидеть полное расположение файла там что-то вроде:

C:\Program Files\Notepad++

РЕДАКТИРОВАТЬ:

Каждая программа, которую вы устанавливаете, обычно связана с реестром, где ее можно настроить. Подробности большинства программ можно найти в:

"HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node" (64 bit)
"HKEY_LOCAL_MACHINE\SOFTWARE\" (32 bit)

Так что вам нужно будет использовать regedit.exe в этих местах, найти вашу программу и просмотреть расположение исполняемого файла.

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