potappo's blog

日々の雑感などを書くブログ。

コマンドプロンプトで関連付けを変更する

旧サブブログ「Life is Try and Error」(2013 年 3 月 31 日で閉鎖予定)の過去記事(2006-12-18 掲載)の再掲です。なお、各ソフトウェアは当時のものですので、現在のバージョンでは出力が異なる場合があります。
via Windows NTのコンソール
コントロールパネルを使った GUI による関連付けの調整は目的の拡張子を検索できなくてけっこう面倒だなと思っていたのだけど、これなら楽かも。
例えば、.html ファイルを Firefox に関連付けさせようとした場合は、以下のような感じになる。
まず、現在の .html ファイルの関連付けファイルタイプを調べる。

assoc .html

と打つと、以下が出力される。

.html=htmlfile

htmlfile というファイルタイプに関連づけられたプログラムを調べるために、

ftype htmlfile

と打つと、以下が出力される。

htmlfile="C:\Program Files\Internet Explorer\IEXPLORE.EXE" -nohome

よって、htmlfile は IE に関連付けられたファイルタイプだということがわかる。
次に、Firefox に関連付けされたファイルタイプがないか調べる。
htmlfile を Firefox に関連付けてしまうというのもありだと思うのだけど、冒頭のリンク先のページでは、 「NetscapeMarkup=E:\netscape\Program\netscape.exe "%1" 」というものが具体例としてあったので、Firefox にも同じようなものがないか調べてみる。
ftype と打つと、全ての登録済みファイルタイプが表示されるが、それではコントロールパネル経由のGUI設定と同様に探すのが大変なので、find に渡して検索する。

ftype | find /I "firefox.exe"

と打つと、以下が出力される。

CHROME=C:\PROGRA~1\MO9CA1~1\FIREFOX.EXE -url "%1"
FirefoxHTML=C:\PROGRA~1\MO9CA1~1\FIREFOX.EXE -url "%1"
gopher=C:\PROGRA~1\MO9CA1~1\FIREFOX.EXE -url "%1"
MacromediaFlashPaper.MacromediaFlashPaper=C:\PROGRA~1\MOZILL~1\FIREFOX.EXE -url
"%1"

つまり、FirefoxHTML に関連付ければ良いことがわかる。
.html ファイルを FirefoxHTML に関連付けるには、

assoc .html=FirefoxHTML

と打つ。以下が出力される。

.html=FirefoxHTML

これで .html ファイルのアイコンが Firefox のアイコンになっていて、そのファイルをダブルクリックなどで Firefox で開くことができれば成功。
ちなみに、プロトコルの関連付けというのもコマンドラインでできるようだ。これは Firefox などブラウザのオプションで「規定(標準)のブラウザにする」などのオプションを有効にすれば済むことだけど、一時的設定や確認には使えるかも。
例えば、IE7 を規定のブラウザにした状態で以下のコマンドを打つと、

ftype | find /I "IEXPLORE.EXE"

以下が出力される(もっと出力されるが、説明に必要な部分だけ)。

ftp="C:\Program Files\Internet Explorer\IEXPLORE.EXE" %1
HTTP="C:\Program Files\Internet Explorer\IEXPLORE.EXE" -nohome
https="C:\Program Files\Internet Explorer\IEXPLORE.EXE" -nohome

で、以下のコマンドを打つ(出力結果は略)。

ftype HTTP=C:\PROGRA~1\MO9CA1~1\FIREFOX.EXE -url "%1"

これで、ブラウザ以外のプログラムでURLをクリックすると規定のブラウザで表示する機能などで、Firefox が起動するようになる。ftphttps も変えれば、規定のブラウザに設定したのと同じに。