[Japanese|English]

start.exeコマンド

概要

start.exeはCygwin環境などで利用することを意図した、Windowsのコマンドラインツールです。Windowsの「関連付け」に従って、データファイルを指定してアプリケーションを起動することができます。比較的最近の Internet Explorer がインストールされていれば、URL を指定してウェブブラウザを起動することもできます。

開発の背景

Windowsのコマンドプロンプト (いわゆる「DOS窓」) ではstartというコマンドが使えます。これは、Windowsのエクスプローラでファイルをダブルクリックしたときの動作を、コマンドで行うものです。例えば、start foo.exeとすればプログラムfooが起動し、start foo.txtとすればテキストエディタが起動してfoo.txtというファイルの編集状態になり、start foo.aviとすればメディアプレーヤーが起動してfoo.aviという動画の再生が始まります。

筆者は、コマンドプロンプトで作業をするときに、Windowsのstartコマンドをよく使います。Cygwinで、bashを使っているときにもstartと打ち込んでしまうことがよくありました。ところが、Windowsのstartコマンドは、Windowsのコマンドシェル (具体的には、COMMAND.COMまたはCMD.EXEのビルトインコマンドであるため、Cygwin環境では利用できません。

しかたがないので、同等品を作ってしまったのが、このstart.exeです。

使い方

bashなどから、start filenameのようにして使います。ここでfilenameは、目的のファイル名です。すると、Windowsのエクスプローラでこのファイルをダブルクリックしたときと同じことが起きるはずです。通常は、ファイル名の拡張子に従ってファイルと関連付けられたアプリケーションが起動し、編集、表示、再生などの「デフォルトの動作」が行われます。

Windowsのstartコマンドとは、以下のような点が異なります。

ダウンロード

実行ファイルとソースを用意しました。どちらも.ZIPです。ソースはCで書いてあります。

コンパイルの方法

筆者は、Cygwinを用いてgccでコンパイルしました。リソースのコンパイルにはwindresを使いました。ただし、cygwin環境ではなく、mingw環境でコンパイルしています。(このため、start.exeの実行には、Cygwinは必要ありません。)

Cygwinやgccに特有の機能は利用していませんから、マイクロソフトなど、他のコンパイラでもコンパイルできると思います。