Windowsのコマンドプロンプトでファイル拡張子の関連付けを変更するTech TIPS

Windowsでファイルをダブルクリックすると関連付けされたアプリケーションが起動する。この関連付けの設定をコマンドプロンプトから変更するには、assocとftypeコマンドを利用する。各コマンドの使い方と使い分けは?

» 2007年01月27日 05時00分 公開
[打越浩幸デジタルアドバンテージ]
Tech TIPS
Windows Server Insider


「Tech TIPS」のインデックス

連載目次

対象OS:Windows 2000 / Windows XP / Windows Server 2003



解説

 Windows OSでは、例えばエクスプローラ上でファイル名をダブルクリックすると、そのファイルを作成したアプリケーションが起動する。このような仕組みをファイル・タイプの関連付けという。TIPS「ファイル・タイプの関連付けを変更する2つの方法」では、GUIの設定画面(エクスプローラの[ツール]−[フォルダ オプション]やファイルの[プロパティ]ダイアログ)を使って関連付けを変更する方法を紹介した。

 本TIPSでは、コマンドプロンプト上からこの関連付け設定を行ったり、その内容を確認する方法を紹介する。

操作方法

 コマンドプロンプト上でファイル・タイプの関連付けを操作するコマンドには、assocとftypeの2つがある。これら2つのコマンドを組み合わせて、関連付けを設定する。ただしこれらのコマンドを実行するには、Power Usersもしくは管理者権限が必要である。

●ステップ1――ファイル拡張子にファイル・タイプを定義付ける

 例えば、.mytextというファイル拡張子を新しく定義し、sample.mytextというファイルをダブルクリックするとメモ帳が開くようにしたいとする。この場合、まず.mytextというファイルに対して、assocコマンドで「ファイル・タイプ」を定義する。assocコマンドの使い方は「assoc /?」や「help assoc」で確認できるし、何も引数を付けずに実行すると、現在定義されているファイル・タイプの一覧が表示される。

C:\>assoc ……現在定義されているファイル・タイプの表示
.323=h323file ……実行結果
.386=vxdfile
.3df=Crystal.Chart
.3g2=QuickTime.3g2
.3gp=QuickTime.3gp
……(以下省略)……

C:\>assoc .txt ……例:.txtのファイル・タイプの確認
.txt=txtfile ……実行結果



 .mytextというファイルに対してファイル・タイプを定義するには、次のようにする。ファイル・タイプ名は、既存のものと同じでなければ、何でもよい(空白文字は含まないこと)。ここではmytextfileという名前にしてみた。

C:\>assoc .mytext=mytextfile ……assocコマンドの実行
.mytext=mytextfile ……実行結果

C:\>assoc .mytext ……確認
.mytext=mytextfile ……実行結果



●ステップ2――ファイル・タイプに対して起動するプログラムを定義付ける

 ファイル・タイプを定義したら、次は、ftypeコマンドで、そのファイル・タイプに対して実行するコマンド(ダブルクリックしたときに起動するコマンド)を定義付ける。ftypeコマンドの使い方は、「ftype /?」や「help ftype」で確認できる。また、現在定義されているコマンドの一覧は引数なしでftypeコマンドを実行すると表示される。

C:\>ftype ……現在定義されているコマンドの表示
3DStudio.GMAX=C:\Program Files\gmax\gmax.exe %1
Access.ADEFile.11="C:\Program Files\Microsoft Office\OFFICE11\MSACCESS.EXE" /NOSTARTUP "%1"
Access.ADEFile.9=C:\PROGRA~1\MICROS~2\Office\MSACCESS.EXE /NOSTARTUP "%1"
……(以下省略)……

C:\>assoc .txt ……例:.txtのファイル・タイプの確認
.txt=txtfile ……実行結果

C:\>ftype txtfile ……txtfileタイプのコマンドの表示
txtfile=%SystemRoot%\system32\NOTEPAD.EXE %1 ……実行結果



 先ほど定義したmytextfileというファイル・タイプに対して、例えばメモ帳を起動するには次のようにする。

C:\>ftype mytextfile=notepad.exe %1 ……メモ帳の関連付け
mytextfile=notepad.exe %1 ……実行結果

C:\>ftype mytextfile ……定義結果の確認
mytextfile=notepad.exe %1 ……結果



 「mytextfile=notepad.exe %1」は、notepad.exeというコマンドに対して、%1という引数を付けて起動するという意味である。「%1」は第1引数(ダブルクリックしたファイル名そのもの)を表す。複数の引数がある場合は、以後の引数は%2、%3、……として参照できるし、「%*」とすればそれらをまとめて利用することもできる。例えば、コマンドプロンプトで「sample.mytext abc def」とすれば、%1はc:\sample.mytext、%2はabc、%3はdef、%*はabc defのようになる。ただしメモ帳では2つ以上の引数を付けて起動するとエラーとなるので(例:「notepad abc.txt def.txt」とすると、「abc.txt def.txt」という1つのファイルを開こうとする)、注意していただきたい。%2や%*は、複数の引数を処理できるコマンドでのみ意味がある。

●定義の削除

 ユーザーが追加したassocやftypeの定義は、「=」記号の右側を空にして実行すると削除できる(ただしOSのバージョンによってはエラーになることがある)。

C:\>assoc .mytext= ……ファイル・タイプの削除

C:\>ftype mytextfile= ……関連付けられたコマンドの削除




 以上のようにしてassocとftypeコマンドでファイルの拡張子に対して関連付けを行うと、以後はエクスプローラ上でsample.mytextファイルをダブルクリックしたり、コマンドプロンプト上でsample.mytextと入力するだけでメモ帳が起動し、sample.mytextファイルが開かれる。1度定義された関連付け設定は、レジストリに記録され、再起動したり、ほかのユーザーがログオンしても利用できる。

 なおコマンドプロンプト上でファイルを開くためには、sample.mytextのように(もしくはstart sample.mytextとする)、ファイルの拡張子まできちんと入力しなければならない。単にsampleと入力するだけでftypeで定義したコマンドを起動する方法については、TIPS「実行ファイルの拡張子を追加定義する」を参照していただきたい。

「Tech TIPS」のインデックス

Tech TIPS

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。