Posted at

Windows のファイル拡張子の関連付け


概要

Windowsでは,実行形式(.exe)でないファイルをエクスプローラ上でダブルクリックしたり,コマンドプロンプト上で(まるでコマンドであるかのように)実行しようとした場合,そのファイルのファイル種別によって適切なアプリケーションやコマンドが起動され,そのファイルがオープンされます。たとえば,.xlsxファイルの場合は,エクセルが起動され,起動したエクセル上ではそのファイルがオープンされます。

ファイル拡張子がどのアプリケーションやコマンドに紐付けられているかは,エクスプローラ上でファイルを右クリックして「プロパティ > 全般」を開き,「ファイルの種類/プログラム」の欄で確認できたり変更できたりします。ファイル拡張子からアプリケーション,コマンドへの紐付けはレジストリ \HKEY_CLASSES_ROOT の下に記録されています。

本稿で述べる assoc コマンド,ftype コマンドを使えば,ファイル拡張子のコマンドへの紐付けをより細かく制御できます。


ファイル拡張子の関連付けを確認する方法

手順1: assoc コマンドでファイル種別を得ます。

> assoc .py

.py=Python.File

手順2: ftype コマンドでファイル種別に紐付けられたコマンド実行内容を確認します。

> ftype Python.File

Python.File="C:\WINAPP\Python\python.exe" "%L" %*

「%L」はファイルの名前,「%*」は残りのコマンド引数に置換されます。たとえば,上のように定義されている場合に,コマンドライン上でhello.py foo bar bazとタイプしたならば,C:\WINAPP\Python\python.exe hello.py foo bar bazが実行されることになります。


ファイル拡張子の関連付けを定義/変更する方法

assoc コマンドでファイル種別を定義/変更します。

> assoc .py=Python.File

ftype コマンドでファイル種別に紐付けられたコマンド実行内容を定義/変更します。「%L」と「%*」については,「ファイル拡張子の関連付けを確認する方法」を参照してください。

> ftype Python.File="C:\WINAPP\Python\python.exe" "%L" %*


ファイル拡張子の関連付けを削除する方法

assoc コマンドでファイル種別を削除します。

> assoc .py=

ftype コマンドでファイル種別に紐付けられたコマンド実行内容を削除します。

> ftype Python.File=