はじめに、この記事は専門家でも何でもない一般人が書いています。そのことを理解した上で読んでいただければと思います。表面的にしか調べられていないかもしれませんが、現段階で分かったことを書きました。より深い内容を知るには、書籍やブログなどで調べる必要があります。
初めて環境変数に出会ったのは、Javaの勉強のときでした。Javaをインストールした後に環境変数を設定するのですが、当時はコンパイルを楽にするためにするという認識しかありませんでした。パスを通すとその裏で何が行われているのかまでは分かりませんでした。参考書に詳しい説明がなく、釈然としなかったのを覚えています。
その後、Webサービス制作の勉強をしているときに、再び環境変数に出会いました。「プログラムを本番環境にアップするときに、プログラムの中にAPIキーなどの他人に見られてはいけない情報は環境変数に設定しておくと良い」といった記述がありました。
Javaのときの環境変数とWebサービス制作のときの環境変数は、同じものなのではないかと思い調べることにしました。同じものだとしても、用途が違うことに不思議に思いました。
環境変数とは
コンピュータが持つ変数だそうです。環境変数に設定されている値は、様々なプログラムから利用できるそうです。
環境変数の確認
システムのプロパティの詳細設定タブにある「環境変数」から「ユーザ環境変数」と「システム環境変数」を確認できます。ちなみに、環境変数は「キー」と「値」のセットです。キー=値。
環境変数のPath
環境変数のPathに実行ファイルが格納されている場所のパスを設定することを「パスを通す」というそうです。こうすることで、コマンドプロンプト上でどのディレクトリにいても、ファイル名だけで実行ファイルを実行できるようになります。実際は、プログラムの方でPathの値を順に見て行き、ファイルの在処を検索します。ファイルが見つかったらそのファイルを実行するそうです。
実験:メモ帳の起動
環境変数のPathにメモ帳の実行ファイルが格納されている場所のパスが設定されているので、コマンドプロンプトからメモ帳を起動できるか確認してみます。コマンドプロンプトで「notepad」と入力し、Enterキーを押します。
notepad
メモ帳が起動するのを確認できたと思います。拡張子(ここでは.exe)は省略しても自動的に補完されます。実際は、メモ帳の実行ファイルまでのフルパスが指定されて実行されます。
これで、コマンド入力のような形でアプリケーションを起動できることが分かりました。このことから、コマンドを自作できるのではないかと考えました。
Windowsでコマンドを自作する
以下の流れでコマンドを自作してみます。
- バッチファイル(xxx.bat)を作成する
- ファイルをパスが通っているフォルダに格納する
- コマンドプロンプトで実行できるか確認する
例えば、xxx.batファイルの中身を以下のようにしてみます。
echo Hello World!
ファイルを格納したらコマンドプロンプトで、xxxと入力しEnterキーを押します。「Hello World!」と表示されるのが確認できると思います。ここでは、ただ文字列を表示することしかしていませんが、コマンドを組み合わせて便利な処理を記述すると良いです。
※自作したバッチファイルを格納する場所は、別途適当な場所に作成しパスを通すと使い勝手が良くなると思います。
拡張子の自動補完
set pathextで、自動で補完される拡張子の種類を確認できます。
set pathext PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC