Программно ассоциировать расширения файлов с application on Windows

Я недавно переустановил Windows, и при настройке своей среды я заметил, что все мои ассоциации для различных языков программирования, которые я редактирую в Notepad++, ушли (естественно).

Я думаю на будущее, не было бы здорово иметь какой-то пакетный файл, который мог бы автоматически ассоциировать выбор расширений файлов с N++ одним нажатием кнопки, вместо того, чтобы ждать, пока я не столкнусь со всеми этими расширениями, а затем пройти через ригмарол перейти к N++ exe и т. д..

Я не могу сделать это с помощью Default Programs утилита, которая поставляется с Windows 7, потому что она работает только с расширениями, которые были "обнаружены".

Так можно ли программно ассоциировать расширения файлов с application on Windows?

5
задан deed02392
29.03.2023 5:10 Количество просмотров материала 3649
Распечатать страницу

3 ответа

использовать Ftype и ДОЦ исправить это (и сценариев).

используйте Assoc, чтобы получить тип файла

>Assoc .txt

дает вам:

.txt = txtfile

затем

>Ftype txtfile=C:\Program Files (x86)\Notepad++\notepad++.exe %1

как только вы знаете тип файла, вы можете использовать Ftype, чтобы связать его с действием.

Это будет работать для .php файлы (просто плюхните их в пакетный файл)

Assoc .php=phpfile
Ftype phpfile="C:\Program Files (x86)\Notepad++\notepad++.exe" %1

и вы можете скопировать эти строки, чтобы добавить текстовый формат как вам бы этого хотелось.

59
отвечен uSlackr 2023-03-30 12:58

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

чтобы создать идентификатор и путь (проверьте правильность расположения точек пути):

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\notepad_pp]
@=""

[HKEY_CLASSES_ROOT\notepad_pp\shell]

[HKEY_CLASSES_ROOT\notepad_pp\shell\open]

[HKEY_CLASSES_ROOT\notepad_pp\shell\open\command]
@="\"C:\Program Files (x86)\Notepad++\notepad++.exe\" \"%1\""

, а затем продолжайте повторять следующий бит, по одному для каждого расширения (в этом примере, .pl для Perl):

[HKEY_CLASSES_ROOT\.pl]
@="notepad_pp"

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

2
отвечен Richard 2023-03-30 15:15

вот скрипт, который работал для меня на Windows 10

$exts=@("txt","log","csproj","sql","xml","flobble")
echo "## setting up file associations"
foreach ($ext in $exts){
    $extfile=$ext+"file"
    $dotext="." + $ext
    cmd /c assoc $dotext=$extfile
    cmd /c "ftype $extfile=""C:\Program Files (x86)\Notepad++\notepad++.exe"" %1"
    echo ""
}
  • должен быть запущен в Windows powershell администратора.
  • исследователь немедленно обновляется и показал новые значки файлов.

https://gist.github.com/timabell/bc90e0808ec1cda173ca09225a16e194

спасибо другим ответам за информацию, необходимую для этой работы.

2
отвечен Tim Abell 2023-03-30 17:32

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя

Похожие вопросы про тегам:

batch
file-association
file-extension
powershell
windows
Вверх