Команда ASSOC управляет таблицей ассоциаций расширений файлов с типами файлов в реестре Windows. Она позволяет мгновенно выяснить, какой тип файла зарегистрирован для расширения, и изменить эту привязку без открытия интерфейса «Открыть с помощью». Используется в паре с командой FTYPE, которая задаёт программу для конкретного типа файла.
- Синтаксис команды ASSOC
- Ключи и параметры
- Примеры использования
- Просмотр всех ассоциаций
- Просмотр ассоциации для конкретного расширения
- Изменение ассоциации расширения
- Поиск ассоциаций по шаблону
- Сброс ассоциации
- Переназначение скриптов Python
- Сохранение списка ассоциаций в файл
- Частые ошибки и решения
- Когда применять, а когда нет
- FAQ
- Чем отличается ASSOC от FTYPE?
- Как восстановить стандартную ассоциацию файла?
- Работает ли ASSOC в PowerShell?
- Почему ASSOC не меняет, чем открываются файлы у обычного пользователя?
- Можно ли через ASSOC привязать расширение к пакетному файлу?
Синтаксис команды ASSOC
ASSOC [.расширение[=[ТипФайла]]]
Плейсхолдеры:
.расширение— расширение файла с точкой, например.txt,.mp3,.pyТипФайла— имя типа файла в реестре, напримерtxtfile,VLC.mp3
Если команда вызвана без параметров — выводит все зарегистрированные ассоциации. Если указано только расширение без знака = — показывает текущую ассоциацию для него.
Ключи и параметры
| Форма вызова | Описание | Пример |
|---|---|---|
ASSOC | Выводит полный список всех ассоциаций расширений | ASSOC |
ASSOC .ext | Показывает текущий тип файла для расширения .ext | ASSOC .txt |
ASSOC .ext=ТипФайла | Устанавливает новую ассоциацию для расширения | ASSOC .txt=txtfile |
ASSOC .ext= | Сбрасывает ассоциацию (оставляет пустой тип файла) | ASSOC .txt= |
Pipe в FIND | Фильтрует список ассоциаций по шаблону | ASSOC | FIND ".mp" |
Примеры использования
Просмотр всех ассоциаций
Выводит полный реестр зарегистрированных расширений. Список может быть длинным — удобно перенаправить в файл.
ASSOC
Каждая строка имеет вид .расширение=ТипФайла. Чтобы найти нужный формат, добавьте фильтр.
Просмотр ассоциации для конкретного расширения
Быстро узнайте, с каким типом файла связано расширение .pdf.
ASSOC .pdf
Типичный вывод: .pdf=AcroExch.Document.DC. Этот тип можно использовать в команде FTYPE AcroExch.Document.DC для просмотра запускаемой программы.
Изменение ассоциации расширения
Перепривязывает расширение .log к типу txtfile, чтобы файлы логов открывались в Блокноте.
ASSOC .log=txtfile
Требует прав администратора. После выполнения Windows будет открывать .log как текстовый файл.
Поиск ассоциаций по шаблону
Выводит только строки, содержащие .mp, — удобно найти все медиаформаты сразу.
ASSOC | FIND ".mp"
Результат покажет .mp3, .mp4, .mpg и все другие совпадения.
Сброс ассоциации
Удаляет тип файла для расширения, оставляя его «без программы». При открытии файла Windows предложит выбрать приложение.
ASSOC .xyz=
Расширение остаётся зарегистрированным, но тип файла пустой. Отличается от полного удаления ключа реестра.
Переназначение скриптов Python
Если .py открывается не тем интерпретатором, смените ассоциацию на нужный тип. Сначала проверьте текущий:
ASSOC .py
Затем установите нужный тип (предварительно убедившись в его существовании через FTYPE):
ASSOC .py=Python.File
Сохранение списка ассоциаций в файл
Экспортирует все ассоциации в текстовый файл для анализа или резервной копии.
ASSOC > C:\assoc_backup.txt
Файл можно использовать как справочник при восстановлении ассоциаций после сбоя.
Частые ошибки и решения
| Ошибка / симптом | Причина | Решение |
|---|---|---|
| «Отказано в доступе» при установке ассоциации | CMD запущен без прав администратора | Запустить командную строку от имени администратора |
ASSOC .txt= не сбрасывает — файлы всё равно открываются старой программой | Ассоциация задана в HKCU (пользовательский реестр), которая перекрывает HKCR | Удалить ключ HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.txt через regedit или reg delete |
| Ассоциация установлена, но двойной клик не работает | Тип файла задан в ASSOC, но для него нет действия в FTYPE | Настроить открывающую программу: FTYPE txtfile=notepad.exe %1 |
ASSOC .ext возвращает пустой вывод или ошибку «Не существует» | Расширение не зарегистрировано в реестре | Установить ассоциацию командой ASSOC .ext=ТипФайла или зарегистрировать через «Параметры» Windows |
| После изменения ассоциации иконки не обновились | Кэш иконок не обновился | Перезагрузить проводник: taskkill /f /im explorer.exe && start explorer.exe |
Когда применять, а когда нет
Команда ASSOC работает только в среде CMD — она встроенная команда интерпретатора, а не отдельный исполняемый файл. При изменении ассоциаций через ASSOC/FTYPE изменения вносятся в ветку реестра HKCR (HKEY_CLASSES_ROOT), однако пользовательские переопределения в HKCU имеют приоритет, и ASSOC их не затрагивает. Если ассоциации задаются в масштабе предприятия через GPO, ручные изменения через ASSOC будут перезаписаны при следующем применении политики. В PowerShell аналогов встроенных командлетов для работы с ассоциациями нет — используйте cmd /c assoc или прямые операции с реестром через Set-ItemProperty.
FAQ
Чем отличается ASSOC от FTYPE?
ASSOC связывает расширение файла (.txt) с именем типа файла (txtfile). FTYPE определяет, какая программа запускается для этого типа файла. Для корректной работы нужны оба: сначала ASSOC задаёт тип, затем FTYPE — программу для него.
Как восстановить стандартную ассоциацию файла?
Через «Параметры» → «Приложения» → «Приложения по умолчанию» выберите нужное расширение и назначьте программу. Через CMD полного сброса до системных умолчаний нет — ASSOC управляет только реестровой привязкой типа файла.
Работает ли ASSOC в PowerShell?
Да, если вызвать через cmd /c assoc .txt. Нативного командлета PowerShell для ассоциаций нет. Для чтения реестра используйте Get-ItemProperty "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.txt".
Почему ASSOC не меняет, чем открываются файлы у обычного пользователя?
Ассоциации в HKCU (пользовательском разделе реестра) перекрывают системные из HKCR. ASSOC пишет в HKCR, поэтому изменения не видны, если в HKCU есть своя запись для этого расширения. Удалите пользовательское переопределение через regedit.
Можно ли через ASSOC привязать расширение к пакетному файлу?
Да. Создайте тип командой ASSOC .myext=myScript, затем назначьте программу: FTYPE myScript=cmd.exe /c "C:\scripts\handler.bat" "%1". После этого двойной клик по файлу с расширением .myext запустит пакетный скрипт.



