Windowsでシステムを汚さずにパスを通す(コマンドプロンプト)

私は、Windowsで小規模なプログラムを作成する場合はコマンドプロンプトを使う。
IDEを使うと、小規模なプロジェクトの乱立で不便になるからだ。

コマンドラインからコンパイルなどを行うとなると、コンパイラなどのあるディレクトリを
環境変数のPATHに登録しなければならない。
通常は「システムの詳細設定」などを使用して設定するが、使用するツールが増えていくに従って
環境変数が肥大していく。気にしない人は気にしないだろうが、気になる人にとってはやはり気になる。

無計画にパスを追加してくと、「名前の衝突」という問題も発生する。
例えば、私の環境にはlsコマンドが2つ入っている。一つはMinGWのMSYSに、もうひとつはGitに含まれているものである。これらは動作がほぼ同じなのであまり困らないが、場合によっては同じファイル名でも引数の設定方法が違う実行ファイルがあるかもしれない。
そのようなとき、あるコマンドで実行されるのがどの実行ファイルかを考えながら作業するのは苦痛である。

そもそも、「違うディレクトリツリーにある」ということは「目的が違う」ということである。
複数の、異なる目的のために使うものをシステムの環境変数などという共通データベースに格納しているのは、おかしいのである。

それから、ソフトウェアをアンインストールした後もそのソフトウェアを使用するためのパスが残っているのはあまり気持ちがいいものではない。

そこで、システムを汚さず、かつ簡単にコマンドラインでプログラムを開発するために、以下の方法を取ることにした。

1. 環境変数を設定するバッチファイルを作成する

内容は
@set PATH=%PATH%;"C:\path\to\your\tools\bin"

@doskey command=alias for the command
の羅列になるだろう。
(環境変数の設定の補足は後回しにする)

ここではC:\tools\set-env.batという名前で保存しよう。

2. コマンドプロンプトへのショートカットを作成する

どこでもいいが、とりあえずデスクトップに作ることにする。
デスクトップのなにもない場所で右クリック->「新規作成」->「ショートカット(S)」

「ショートカット(S)」をクリックすると「ショートカットの作成」というウィンドウが出る。
ここで、「項目の場所を入力してください(T):」と書いた下のテキストボックスの入力する文字列が肝心である。

テキストボックスに、
cmd /K C:\tools\set-env.bat
と入力し、「次へ」ボタンをクリックする。

あとは「このショートカットの名前を入力してください(T):」と言われるので
適当な名前を入力して終わりである。


このショートカットをダブルクリックするだけで適切な場所に
パスが通ったコマンドプロンプトのウィンドウが表示される。

システムの環境設定はいじっていないし、ツールを使う度にフルパスを入力する必要もない。

更に、コマンドプロンプトを開く目的毎にバッチファイルとショートカットを作成すれば、
「名前の衝突」も避けることができる。