FTYPE — просмотр и изменение ассоциаций файлов в CMD

FTYPE — команда CMD для просмотра и изменения ассоциаций файловых типов с программами. Позволяет назначить любое приложение для открытия файлов нужного расширения.

Команда FTYPE управляет ассоциациями файловых типов в Windows: показывает, какая программа открывает файл по типу, и позволяет изменить эту привязку прямо из командной строки. Используется в связке с командой ASSOCASSOC связывает расширение с типом, а FTYPE связывает тип с исполняемым файлом.

Синтаксис команды 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.

Оцените статью
( Пока оценок нет )
MW10
Добавить комментарий

Нажимая на кнопку "Отправить комментарий", я даю согласие на обработку персональных данных и принимаю политику конфиденциальности.