3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

InternetShortcut(*.url) ファイルをデフォルト・ブラウザに開かせる

Last updated at Posted at 2015-01-05

※Safari 以外のブラウザについての話です。
Windows で作った InternetShortcut ファイルを Mac OS X で開く場合、デフォルト・アプリケーションが Safari の場合は問題なく開けます。
しかし、Firefox や Google Chrome をデフォルト・アプリケーションに設定すると、むなしくファイル内の URL が表示されるだけです。ドラッグ&ドロップでは期待どおりに Web ページが表示されるというのに、おかしな話です。
毎回、ブラウザを立ち上げてからドラッグ&ドロップというのも面倒なので、Automator で簡単なラッパー・アプリケーションを作ってしまいましょう。

Automator でアプリケーションを作る

Automator

  1. これから作るアプリケーションをデフォルト・アプリケーションにするので、ワークフローではなくアプリケーションを選択します。
  2. アクション「シェルスクリプトを実行」を選び、入力の引き渡し方法を「引数として」にします。
  3. sed コマンドを使って InternetShortcut ファイルから URL を抽出するスクリプトを記述します。
  4. 抽出した URL をアクション「Web ページを表示」に渡して、デフォルト・ブラウザに開かせるようにします。
  5. 作ったアプリケーションを自分の好きな場所に保存します。
  6. *.url ファイルを Finder で右クリックし、メニューから「このアプリケーションで開く…」→「その他…」と選び、先ほど保存したアプリケーションを選択します。
  7. うまく 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 コマンドで削除するようにしています。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?