※Safari 以外のブラウザについての話です。
Windows で作った InternetShortcut ファイルを Mac OS X で開く場合、デフォルト・アプリケーションが Safari の場合は問題なく開けます。
しかし、Firefox や Google Chrome をデフォルト・アプリケーションに設定すると、むなしくファイル内の URL が表示されるだけです。ドラッグ&ドロップでは期待どおりに Web ページが表示されるというのに、おかしな話です。
毎回、ブラウザを立ち上げてからドラッグ&ドロップというのも面倒なので、Automator で簡単なラッパー・アプリケーションを作ってしまいましょう。
Automator でアプリケーションを作る
- これから作るアプリケーションをデフォルト・アプリケーションにするので、ワークフローではなくアプリケーションを選択します。
- アクション「シェルスクリプトを実行」を選び、入力の引き渡し方法を「引数として」にします。
- sed コマンドを使って InternetShortcut ファイルから URL を抽出するスクリプトを記述します。
- 抽出した URL をアクション「Web ページを表示」に渡して、デフォルト・ブラウザに開かせるようにします。
- 作ったアプリケーションを自分の好きな場所に保存します。
- *.url ファイルを Finder で右クリックし、メニューから「このアプリケーションで開く…」→「その他…」と選び、先ほど保存したアプリケーションを選択します。
- うまく Web ページが表示されたでしょうか?
URL を抽出するシェルスクリプト
for item in "$@"
do
/usr/bin/sed -En '/URL=/ s///p' "$item" | /usr/bin/tr -d '\r'
done
InternetShortcut ファイルは構造が超簡単なため、"URL=" で始まる行を探して "URL=" を消して出力しているだけです。
ひとつ厄介な点として改行コードが CR+LF になっているため、単純に URL を抽出しただけでは末尾に CR が残ってしまい、ブラウザでエラーになってしまいます。
OS X 標準の BSD 系 sed では \r を CR と解釈してくれず、Automator では ^v で ^m の直接入力もできないので、tr コマンドで削除するようにしています。