インストールされるアプリケーションの場所は、どこにあるのでしょうか?
それは、『スタート』メニューから始めるプログラムの選択項目を、右クリックしてプロパティを調べれば分かります。
以下は、メモ帳のプログラムを調べている画面で、『メモ帳』項目で、右クリックしています。
上記操作で、現れるプロパティウィンドウを次に示します。
(この内容も、設定状態によって変わります。またWindowsの種類によっても異なります。
これは、WindowsXPの例です)
このプロパティのリンク先にある『%SystemRoot%\system32\nodepad.exe』から、
実行プログラムの名前がnodepad.exeで、場所がsystem32とわかります。
『%SystemRoot%\system32\nodepad.exe』のような表現は、
パスと呼ばれるもので、ファイルやディレクトリを表現するものです。
ウィンドウのパスでは、『\』の記号でディレクトリを区切ります。
そしてパスでは最も右側に区切られた文字列を
表現しています。よってこの例では、最も右側のnodepad.exeと言うファイルを表現していることになります。
そしてこのファイルは、%SystemRoot%の中のsystem32のディレクトリ内に在ることを表現しています。
ここの %と%で囲まれる『SystemRoot』は『環境変数』と呼ばれるものです。
環境変数は、よくアプリケーションなどが実行する時の情報を得るためものとして使われます。
『SystemRoot』には、Windowsオペレーティングシステムが使うディレクトリのパス名が記憶されています。
『SystemRoot』以外にもさまざまものがあり、前述のプロパティウィンドウの作業用フォルダに
記述される『HOMEDRIVE』や『HOMEPATH』も環境変数になります。
これら環境変数はWindowsオペレーティングシステムにより、設定方法が異なりますが、Windows2000やWindowsXPなどは、
マイコンピュータの右クリックで次のような『システムのプロパティ』ウィンドウが表示でき、その詳細タグから
一部の環境変数の確認や変更ができます。
しかしこれは、起動の初期に設定する部分で、最終的に現在の環境変数の内容を知るものではありません。
現在の環境変数の設定を調べる方法で、『コマンドプロンプト』を利用する方法があります。
それにはまず、次のスタートで、『コマンドプロンプト』を起動させます。
すると次のような、特別なウィンドウ(黒色の部分)が現れます。
このウィンドウは『コンソール画面』と呼ばれ、
基本的にはマウスが使えない昔ながらのキー操作だけでコンピュータを操作する画面です。
『C:Document and Settings\yuu>』の表示はプロンプト(prompt)と呼ばれる入力促進用の
入力目標になる文字列で、ログオンユーザーなどにより、こうなるとは限りません。
この画面での操作は、キー入力で命令を記述して『Enter』キーで、実行する形式です。
(WindowsXPなどでは、小文字と大文字を区別していないので、どちらでキー入力しても同じです。)
ここで、『echo %SystemRoot%』とキー入力すると、以下のように環境変数のSystemRootの内容が、
応答表示されます。
ここでは、『C:\WINDOWS』が応答表示されています。
これが『SystemRoot』の記憶内容で、つまりシステムが使うディレクトリのパスと言うことになります。
よって、メモ帳が存在する場所(メモ帳プロパティのリンク先)に記載されている
『%SystemRoot%\system32\nodepad.exe』の表現は
『C:\WINDOWS\system32\notepad.exe』であることが分かるわけです。
前述の『echo』という命令(コマンドと呼ばれます。)は、直後にスペース(キー)があり、
その後に続く文字列を表示させるためのものです。
そしてその文字列が、『%』と『%』ではさんだ環境変数の文字列があると、
その環境変数の記憶内容を表示する働きがあるのです。
すべての環境変数の内容を確認する場合は、次の『set』と言うコマンドを使います。
(この内容は、インストールや、ユーザー設定により異なります)
『set』は、他に環境変数の設定にも使われます。以下では、
『abc』の環境変数を新たに作成し、そこに『test data』を記憶させる例です。
その後で、echoコマンドを使って『abc』の環境変数の内容を表示させています。
上記のように新しく作った環境変数は、このコマンドプロンプトを終了するまで有効です。
つまり、コマンドプロンプト終了後(コマンドプロンプトのウィンドウを閉じた後)に再びコマンドプロンプトと開いた時、
以前に作った変数はなくなっています。
以下は、再びコマンドプロンプトを開いて、『abc』の環境変数内容を確認している例ですが、
変数内容は無くなって表示されていません。
コマンドプロンプトのプログラムも、起動メニューの右クリックで得られるメニューのプロパティで調べることができます。
前述と同じシステム位置の環境であれば、『C:WINDOWS\system32』の中にある『cmd.exe』がコマンドプロンプトのプログラムと言うことになります。
そして、前述で紹介した『echo』や『set』のコマンドは、このプログラム内で使える命令です。
他にどんな命令が使えるのでようか?
よく使う命令として次の『dir』というディレクトリの内容を列挙する命令があります。
以下に実行例を示します。
『dir .』の『.』は、カレントディレクトリまたは、作業用フォルダと呼ばれる位置を意味します。
上記の図は、その中の情報を列挙している様子です。(『.』は省略して単に『dir』と入力しても同じです)
一般にカレントディレクトリは、プロンプトで表示されるようになっています。
この例では、C:ドライブで、『\Document and Settings\yuu』が、カレントディレクトリになっています。
つまり、『C:』ドライブの中の『Document and Setting』フォルダの中の
『yuu』の中を列挙しているわけです。
そこには、『Favorites』、『My Documents』、『VSWebCache』、『VSWebCache』、『WINDOWS』
、『スタート メニュー』、『デスクトップ』のディレクトリ(フォルダ)が存在して、それらを列挙している例です。
次は、『C:Document and Setting\yuu』のカレントディレクトリを基準として、
その中の『My Documents』フォルダ内の『work』の中を列挙している例です。
ここに、『test.bmp』と『test.txt』のファイルがあることが分かります。
この『My Documents\work』のように、ある特定のディレクトリを基準とした位置の表現を相対パスと呼びます。
対して、ドライブから根元にあるディレクトリより、指定するファイル(やディレクトリ)にたどり着くまでのディレクトリ全てを
並べて表現するパスを絶対パスと呼びます。
『dir』では、次のように絶対パスでディレクトリを指定することもできます。
上記では、『"C:\Document and Settings\yuu\My Documents\work"』の絶対パスをdirに指定しています。
なお、パスを指定する時、『"』と『"』で囲んでいますが、これはパスの中に空白を含む場合に必要な表現となっています。
次にカレントディレクトリを変更するCD(チェンジディレクトリ)命令を紹介します。
CDの文字列直後にスペースと変更先のパスをキー入力してEnterします。
以下では、カレントディレクトリを絶対パスで、
『"C:\Document and Settings\yuu\My Documents』に変更し、その内容を列挙表示させています。
カレントディレクトリである『My Documents』に対して、このディレクトリが存在する『"C:Document and Settings\yuu』は、
親ディレクトリと呼ばれます。この『親ディレクトリ』は『..』で表現できます。
以下は、親ディレクトリを表示させている様子です。
以下は、cd でカレントディレクトリを親ディレクトリに変更して、その内容を列挙表示している様子です。
以下は、相対パス指定でカレントディレクトリを変更し、そのディレクトリ内容を列挙表示している様子です。
なお、『.』のカレントディレクトリ表現は、省略できます。上記のdirではこの省略した表現を使っています。
現在の操作対象ドライブの変更は、プロンプトに対して、
ドライブを表現する文字に『:』を付けた文字列で指定する形式になっています。
以下は、d:ドライブに変更している例です。
この変更で、プロンプトの表示が『d:\temp>』になっています。つまり、d:ドライブのカレントディレクトリが、
『\temp』になっている例です。
ドライブの根元をルートディレクトリまたは単にルート(root)と呼びます。
(全体パスの先頭ディレクトリが存在する位置とも言えます)
そして、ルートを表現する文字列は、『\』を単体で使った表現になっています。
以下の例では、D:ドライブで、カレントディレクトリをルートへ移動した後、
現在の操作対象ドライブをCドライブへ変更している例です。
以上の操作をから分かると思いますが、カレントディレクトリはドライブごとに持つ情報になっています。
上記操作の終了時点で、C:ドライブのカレントディレクトリは、
『\Document and Settings\yuu\My Documents\work』になっており、
D:ドライブのカレントディレクトリは、ルートの『\』になっています。
その他でよく使うコピーコマンド(COPY)と、削除コマンド(DEL)の使用例を紹介します。
以下では、カレントディレクトリに存在するtest.txtを、test2.txtの名前で親のディレクトリにコピーし、
親ディレクトリをDIRで確認した後で、カレントディレクトリのtest.txtを削除している例です。
つまり、カレントディレクトリにあるtest.txtを親ディレクトリに移動する操作をしたことになります。
このコピーと削除の一連による操作は、MOVEコマンドで可能です。
(なお作成日時は、ファイルアイコンを右クリックして、プロパティのメニュー項目を選択することで確認できます)
コマンドプロンプトでは他にもたくさんのたくさんの命令が使えます。
コマンドの種類は、次のようにプロンプトでHELPと入力すると列挙できます。
上記で、表示されていない部分をこのリンクで示します。
プロンプトで、実行ファイル(.exeのファイル拡張子など)を実行することができます。
以下では、『C:\Document and Settings\yuu\My Documents\work』の中にある『test.txt』をメモ帳で、開く例です。
このように、プロンプトでプログラムファイルを指定すれば、それが起動できます。現在ではグラフィカルにマウスを使った操作に
なっていますが、もともとのコンピュータはこのようなキー操作から始まっています。内部的にはこの方が単純に処理できるからです。
現在のマウス操作を中心するコンピュータ操作環境をGUI(Graphical User Interface)と呼びます。
対して、キー操作を中心にする操作環境はCUI(Character User Interface)と呼ばれています
上記では『C:\Document and Settings\yuu』のカレントディレクトリで、
メモ帳のプログラム(notepad.exe)を絶対パス『%SystemRoot%system32\notepad.exe』で指定しています。
また、開くファイルも絶対パス『C:\Document and Settings\yuu\My Documents\work\test.txt』で指定しています。
この場合、開くファイルのディレクトリが既に存在していなければなりません。
ファイルが存在しない場合は、新規作成することになります。
(存在しないディレクトリを、パスに合わせて自動的に作る機能はありません。)
以下では、前述と同じことを、ファイルを作成する位置にカレントディレクトリを変更してから行っている例です。
前述と同じように動きます。
(メモ帳で開く対象のファイルを、相対パスで指定できます。この例であればファイルのtest.txtだけで済みます。)
このように、カレントパスファイルにあるファイルが最も簡単に操作できます。
以下では、前述と同じことを行っていますが、メモ帳の絶対パスを使わずにプログラムのファイル名(notepad.exe)だけで動かしています。
さて、このようにプログラムファイル名を指定するだけでは、実行できない場合があります。それはどのような場合でしょうか?
実は絶対パス以外でプログラムを動かす場合、環境変数PATHに指定されるディレクトリ内を検索して実行する機構になっているのです。
次は、環境変数PATHの内容を確認している画面です。
検索パスは、『; 』で区切って複数のパスを指定できる形態になっています。
この例では、カレントディレクトリにないプログラムでも
『C:\WINDOWS\system32』と『C:\WINDOWS』と『C:\WINDOWS\system32\Wbem』のディレクトリに存在するプログラムは、
絶対パスを指定しなくても、プログラムファイル名だけで実行できることになります。
よって、以下のように環境変数PATHの設定を無くしてしまうと、
カレントディレクトリに存在しないプログラムファイルは実行できなくなるのです。
(最初に行っている『SET PATH=』が、PATHの環境変数設定を無くしている部分です)
この場合は、notepad.exeのファイルをカレントディレクトリにコピーするか、
または次のように、改めて環境変数PATHを設定し直せば動くようになります。
なおこの設定は、現在表示しているコマンドプロンプトのウインドウだけで有効な設定です。
このウィンドウを閉じて、再びコマンドプロンプトを実行させた場合に、前の設定は残っていません。
永続的に環境変数を設定したい場合は、
以前に説明した『システムのプロパティ』のその詳細タグにある環境変数をクリックして設定することになります。
(『システムのプロパティ』は、マイコンピュータの右クリックで、プロパティを選びます)
以上で、プログラムのファイル名だけで実行させるには、実行ファイルのを検索位置を記憶する環境変数PATHの指定が重要であること。
また、環境変数PATHに指定される以外の位置にあるプログラムを実行するためには、
絶対パスでプログラム指定すればよいことを説明しました。
現在ではマウス操作などのGUI環境を利用しますが、
コンピュータの内部では、選択したファイルのアイコンに結びつけられている絶対パスを利用して実行できるようになっています。
つまり、基本的に絶対パスのような文字列の表現でファイルを特定し、実行させる機構は、今も昔も変わっていないのです。
そして現在では、画面のマウス位置からどのアイコンが選択されているかというような付加プログラムの部分が、
昔のプログラムに対して余計にプログラムされて複雑になっているのです。
そのため、コンピュータを本当に学ぶ場合は、後から付加されたGUIに必要な部分と、
そうでない昔からの基本的な部分を分けて理解することが大切です。