拡張子とアプリケーション
Windowsではファイルの拡張子がファイルの種類を示しており、ファイルエクスプローラから対象ファイルをダブルクリックすると、拡張子に関連付けられたアプリケーションが起動する仕組みになっている。拡張子と起動するアプリケーションの関連付けは設定で変更することが可能で、デフォルトで使いたいアプリケーションを変更する場合などは設定を変更すると便利だ。
Windowsではassocとftypeという2つのコマンドを使って、拡張子と起動するアプリケーションの関連付けを編集したり閲覧したりすることができる。assocコマンドとftypeコマンドの主な使い方は次のとおり。
コマンド | 内容 |
---|---|
assoc | 拡張子とファイルタイプを一覧表示 |
assoc .拡張子 | 拡張子とそのファイルタイプを表示 |
assoc .拡張子=ファイルタイプ | 拡張子にファイルタイプを結び付け |
assoc .拡張子= | 拡張子とファイルタイプ結び付けを解除 |
コマンド | 内容 |
---|---|
ftype | ファイルタイプと起動コマンドを一覧表示 |
ftype ファイルタイプ | ファイルタイプと起動コマンドを表示 |
ftype ファイルタイプ=コマンド %1 | ファイルタイプと起動コマンドを結び付け |
ftype ファイルタイプ= | ファイルタイプと起動コマンドの結びつきを解除 |
assocコマンドとftypeコマンドは引数を何も指定しないで実行すると現在設定されている内容を一覧表示してくれるので、実行してみてほしい。なお、拡張子の結び付けを変更するには管理者権限が必要になる。コマンドプロンプトを管理者権限で起動して、以降の作業を試して見てほしい。
assocコマンドとftypeコマンドはそれぞれ「assoc .拡張子=ファイルタイプ」「ftype ファイルタイプ=コマンド」のように設定を行う。つまり、この2つのコマンドを実行することではじめて拡張子が起動コマンドに結び付けられることになる。
.cをエディタに結び付ける
Windows 10のデフォルトではC言語のソースコードを意味する拡張子.cは関連付けられていない。ここでassocコマンドとftypeコマンドを使って結びつけを行ってみよう。まず、次のようにassocで.cに対して関連付けが行われているかどうか調べてみる。
この状態では、ファイルエクスプローラで対象ファイルを見てもアイコン表示がただのファイルになっている。
起動するアプリケーションが紐付けられていないので、ファイルをダブルクリックすると次のようにどのアプリケーションで起動するのかを聞かれることになる。
ここで次のようにassocコマンドとftypeコマンドを実行する。assocコマンドで拡張子.cをCSourceFileというファイルタイプとして定義し、CSourceFileに対してはVisual Studio Codeが起動してくるといった指定を行っている。Visual Studio Codeは今もっとも人気の高いエディタアプリケーションのひとつだ。
ftypeコマンドではVisual Studio Codeアプリケーションのパスの後に%1を指定しているが、これは指定されたファイルパスに展開される仕組みになっている。ここでは次のような%変数を指定できる。
変数 | 内容 |
---|---|
%0 | 指定されたファイル名 |
%1 | 指定されたファイル名 |
%2 | 1つ目のパラメータ |
%3 | 2つ目のパラメータ |
%4 | 3つ目のパラメータ |
%5 | 4つ目のパラメータ |
%6 | 5つ目のパラメータ |
%7 | 6つ目のパラメータ |
%8 | 7つ目のパラメータ |
%9 | 8つ目のパラメータ |
%* | すべてのパラメータ |
このコマンドを実行してから、先ほどと同じようにファイルエクスプローラから拡張子.cファイルを開こうとすると、次のように候補にVisual Studio Codeが表示されるようになる。
以降はファイルエクスプローラからダブルクリックするだけで拡張子.cに対してVisual Studio Codeが起動してくるようになる。
設定した結びつけは次のように=のあとを空にしてコマンドを実行することで解除することができる。
結びつきを解除した後で同じように拡張子.cファイルをダブルクリックすると、次のような警告が出てきてアプリケーションは起動しないようになる。
普段はGUIから操作することが多いと思うが、このようにassocコマンドとftypeコマンドを利用することでコマンドから拡張子とアプリケーションの結び付けを実施することができる。コマンドを利用することでWindowsのさまざまな設定を変更できるという、その一端を感じてもらえれば幸いだ。