mieki256's diary



2018/11/10() [n年前の日記]

#2 [windows] 拡張子の関連付けを調べたり

「自分が使ってるWindowsが、どの拡張子にどのプログラムを関連付けしてるのか、自分で把握できてない」というのはやっぱりちょっと恥ずかしいなと思ったので調べる方法をググってみたり。たしか記憶では… assoc なるコマンドが関係していた…ような気がする…。

_コマンドプロンプト assoc - [ファイルと拡張子の関連を表示・設定する]

やはりそうだったらしい。assoc で調べられる。

とりあえずDOS窓で、.pl、.rb、.py について確認してみたりして。
> assoc .pl
.pl=APerl

> assoc .rb
.rb=Ruby200

> assoc .py
拡張子 .py のファイルの関連付けが見つかりません
えっ。.py は何も関連付けしてなかったのか…。 *1

APerl とか Ruby200 って何だろう。おそらく、アプリケーションの種類を示す何かだろう…。それぞれどんなアプリケーションが割り当てられているかは、ftype で調べることができる模様。

_コマンドプロンプト ftype - [拡張子に関連付けられているアプリケーションを設定する]

DOS窓で打ち込んで調べてみる。
C:\home> ftype APerl
APerl="C:\Perls\aperl589build827\bin\perl.exe" "%1" %*

C:\home> ftype Ruby200
Ruby200="C:\Ruby\Ruby200\bin\ruby.exe" "%1" %*
APerl は ActivePerl に関連付けしてあった模様。Ruby200は…コレ、Ruby 2.0.0 に関連付けしてあるのか…。古過ぎる…。まあ、ActivePerl もバージョンが古いまま使ってるのでアレなんだけど。

ところが、自分の環境において、DOS窓上で直接 .rb を実行してみると、違うバージョンのRubyが使われるようで。

以下のようなスクリプトを書いて実行してみると…。
#!ruby -Ks

puts RUBY_VERSION
> showver.rb
2.4.3

> ruby --version
ruby 2.2.6p396 (2016-11-15 revision 56800) [i386-mingw32]

> ruby showver.rb
2.2.6
assoc や ftype で確認した際には、.rb に Ruby 2.0.0 が関連付けされてるように見えたけど、.rb を直接実行してみると Ruby 2.4.3 が使われてしまう。何故。

どうやら、エクスプローラ上でダブルクリックした時の関連付けでは、Ruby 2.4.3 になっているから、っぽいなと。 *2 自分の環境では、エクスプローラ上で、.rb、.rbw は、Ruby 2.4.3 に関連付けされていて、assoc や ftype で調べたソレとは違う関連付けになっている。更に、.py、.pyw は、pythonw.exe に関連付けされてるように見えたけど、ダブルクリックして見ると IDLE が起動するという…。何故。

どうやら Windowsは、関連付けに関して、3〜4種類の設定があるようで。

_ASCII.jp:最新のWindowsにおけるファイルの関連づけを分析する (2/2)|Windows Info
_Windowsの関連付けを決めるレジストリの優先順位とassoc ftypeが効かない問題について - イム日記
_レジストリの直接編集によるファイルの拡張子と関連づけ - Glamenv-Septzen.net

ややこしいな…。関連付けにも優先順位があるらしい…。

自分の環境の場合、.rb については、 になっていた。上記レジストリの内容が assoc で確認できる内容よりも優先されるので、DOS窓上で .rb を直接実行すると、Ruby 2.0.0 ではなく Ruby 2.4.3 が呼び出されるのだろう。

更に、環境変数PATHには、Ruby 2.2.6 のインストールフォルダが登録されているので、ruby.exe を実行した際は 2.2.6 が使われる。だから、hoge.rb を直接実行した場合と、ruby hoge.rb で実行した場合で、異なるバージョンのRubyが使われるわけで。ややこしい。

とまあ、このように面倒臭いので、「ruby hoge.rb」「python hoge.py」の形で呼ぶことにしよう、.rb や .py を直接実行するのはやめておこう、とルールを決めて使っていたりするのでした…。
*1: おそらくPythonのインストール時、色んなバージョンをインストールすることが前提だったから、「関連付けする?」のチェックボックスを外した状態でインストールしたのだろう。
*2: Windows10 バージョン 1803 の場合、スタートボタン → 設定 → アプリ → 既定のアプリ → ファイルの種類ごとに既定のアプリを選ぶ、で関連付けを確認できる…のかと思ったけれどコレもちょっと不十分らしい。

以上です。

過去ログ表示

Prev - 2018/11 - Next
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project