Команда FTYPE управляет ассоциациями файловых типов в Windows: показывает, какая программа открывает файл по типу, и позволяет изменить эту привязку прямо из командной строки. Используется в связке с командой ASSOC — ASSOC связывает расширение с типом, а FTYPE связывает тип с исполняемым файлом.
- Синтаксис команды FTYPE
- Ключи и параметры
- Примеры использования
- Просмотр всех ассоциаций типов
- Проверка текущей ассоциации для конкретного типа
- Изменение программы для открытия текстовых файлов
- Регистрация нового типа файла
- Удаление ассоциации типа
- Использование в скрипте для массовой настройки рабочих мест
- Просмотр ассоциации с фильтрацией через FIND
- Частые ошибки и решения
- Когда применять, а когда нет
- FAQ
- Чем FTYPE отличается от ASSOC?
- Нужны ли права администратора для FTYPE?
- Как проверить, к какому типу привязано расширение, перед использованием FTYPE?
- Можно ли использовать FTYPE для изменения программы открытия в проводнике?
- Как передать программе дополнительные аргументы при открытии файла?
- Работает ли FTYPE в PowerShell?
Синтаксис команды FTYPE
FTYPE [тип_файла[=[строка_команды]]]
Расшифровка:
тип_файла— идентификатор типа файла, напримерtxtfile,exefile,pdffile.строка_команды— полный путь к программе с аргументами.%1— плейсхолдер для имени открываемого файла.%*— все дополнительные аргументы.- Без аргументов — выводит все текущие ассоциации типов.
тип_файла=(пустое значение после знака равно) — удаляет ассоциацию для типа.
Ключи и параметры
| Форма вызова | Описание | Пример |
|---|---|---|
FTYPE | Вывести все зарегистрированные типы файлов и их команды открытия | FTYPE |
FTYPE тип | Показать строку команды только для указанного типа | FTYPE txtfile |
FTYPE тип=команда | Назначить программу для открытия файлов данного типа | FTYPE txtfile=notepad.exe %1 |
FTYPE тип= | Удалить ассоциацию типа (сбросить в «нет программы») | FTYPE mytype= |
%1 в строке команды | Подставляет имя открываемого файла | FTYPE pdffile="C:\Program Files\...\AcroRd32.exe" "%1" |
%* в строке команды | Подставляет все дополнительные аргументы командной строки | FTYPE batfile=cmd.exe /c "%1" %* |
Примеры использования
Просмотр всех ассоциаций типов
Нужно быстро увидеть, какие программы зарегистрированы для всех типов файлов в системе.
FTYPE
Команда выведет список в формате тип=строка_команды. Список можно перенаправить в файл: FTYPE > types.txt.
Проверка текущей ассоциации для конкретного типа
Требуется узнать, какой программой открываются текстовые файлы.
FTYPE txtfile
Вывод будет примерно таким: txtfile=%SystemRoot%\system32\NOTEPAD.EXE %1.
Изменение программы для открытия текстовых файлов
Нужно назначить Notepad++ вместо стандартного блокнота для типа txtfile.
FTYPE txtfile="C:\Program Files\Notepad++\notepad++.exe" "%1"
После этого двойной клик на .txt будет открывать Notepad++, если расширение .txt связано с типом txtfile через ASSOC.
Регистрация нового типа файла
Нужно создать тип mylogfile и открывать его через Notepad++.
ASSOC .log=mylogfile FTYPE mylogfile="C:\Program Files\Notepad++\notepad++.exe" "%1"
Теперь файлы .log будут открываться в Notepad++.
Удаление ассоциации типа
Нужно сбросить привязку программы для нестандартного типа.
FTYPE mylogfile=
Тип mylogfile остаётся зарегистрированным, но строка запуска программы удаляется.
Использование в скрипте для массовой настройки рабочих мест
При развёртывании рабочих станций нужно гарантировать одинаковые ассоциации на всех ПК.
@echo off FTYPE txtfile="C:\Tools\notepadpp\notepad++.exe" "%1" FTYPE xmlfile="C:\Tools\notepadpp\notepad++.exe" "%1" FTYPE csvfile="C:\Program Files\Microsoft Office\root\Office16\EXCEL.EXE" "%1" echo Ассоциации установлены.
Скрипт запускается от имени администратора при первом входе пользователя.
Просмотр ассоциации с фильтрацией через FIND
В длинном списке нужно найти только записи, содержащие путь к Python.
FTYPE | FIND /I "python"
Вывод покажет только типы, которые открываются интерпретатором Python.
Частые ошибки и решения
| Ошибка / проблема | Причина | Решение |
|---|---|---|
| «Отказано в доступе» | CMD запущен без прав администратора | Запустить командную строку через «Запуск от имени администратора» |
| Изменение не действует — файл всё равно открывается старой программой | Расширение привязано к другому типу через ASSOC, или переопределено в реестре пользователя | Проверить: ASSOC .txt — убедиться, что тип совпадает с тем, который редактировали через FTYPE |
| Путь с пробелами не работает — программа не запускается | Путь к программе содержит пробелы, но не заключён в кавычки | Всегда заключать путь и %1 в кавычки: FTYPE type="C:\My App\app.exe" "%1" |
Тип файла не найден (FTYPE: тип_файла не найден) | Тип не зарегистрирован в реестре | Сначала создать тип через ASSOC .ext=тип, затем назначить программу через FTYPE |
После удаления ассоциации (FTYPE тип=) файлы перестали открываться совсем | Строка команды удалена, но ASSOC по-прежнему указывает на этот тип | Либо восстановить строку через FTYPE, либо переназначить расширение через ASSOC .ext= |
| Изменения потеряны после перезагрузки или не применяются для другого пользователя | FTYPE работает с записями реестра HKLM, но пользовательские переопределения в HKCU могут иметь приоритет | Для принудительной установки для всех пользователей удалить пользовательские переопределения в HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts |
Когда применять, а когда нет
FTYPE подходит для скриптового управления ассоциациями файлов на Windows-машинах в корпоративной среде или при автоматизации настройки рабочих станций. Команда изменяет записи в разделе реестра HKEY_CLASSES_ROOT, что требует прав администратора. Она не заменяет настройку ассоциаций через «Параметры → Приложения → Приложения по умолчанию» — GUI-настройка работает в HKCU и может переопределять изменения FTYPE для конкретного пользователя. Команда доступна во всех версиях Windows, начиная с NT. Аналог в PowerShell — работа с реестром напрямую через Set-ItemProperty в ветке HKLM:\SOFTWARE\Classes.
FAQ
Чем FTYPE отличается от ASSOC?
ASSOC связывает расширение файла (например, .txt) с типом (например, txtfile). FTYPE связывает тип с конкретной программой и строкой запуска. Оба нужны для полной ассоциации: расширение → тип → программа.
Нужны ли права администратора для FTYPE?
Да, для изменения ассоциаций необходимы права администратора. Без них команда выдаст ошибку «Отказано в доступе». Просмотр текущих ассоциаций (FTYPE без аргументов) доступен любому пользователю.
Как проверить, к какому типу привязано расширение, перед использованием FTYPE?
Выполните ASSOC .расширение. Вывод покажет имя типа, который затем используется в команде FTYPE тип=....
Можно ли использовать FTYPE для изменения программы открытия в проводнике?
Да, но только если пользовательские настройки в HKCU не переопределяют системные. Если двойной клик всё равно открывает старую программу, сбросьте пользовательские переопределения через «Параметры → Приложения по умолчанию» или вручную в реестре HKCU.
Как передать программе дополнительные аргументы при открытии файла?
Используйте %* в строке команды после %1: FTYPE тип="C:\app\app.exe" "%1" %*. Тогда все аргументы, переданные при открытии файла, будут forwarded программе.
Работает ли FTYPE в PowerShell?
Да, FTYPE — встроенная команда cmd.exe. В PowerShell её можно вызвать напрямую или через cmd /c FTYPE .... Для скриптов PowerShell удобнее работать с реестром через Get-ItemProperty и Set-ItemProperty.


