11. 環境変数 

   11−1  環境変数とは
   11−2  環境変数を参照する
   11−3  環境変数を設定する



11−1  環境変数とは

Windows は、すべてのアプリケーションから参照したり、新たに値をセットできる OSレベルの変数を持っています。システム環境を定義したり参照したりするために 使われることが多いことから、環境変数と呼ばれます。
お使いのマシンで現在設定されている環境変数をDOS窓から見てみましょう。
下は Windows2000 環境の例で、 実際はこの倍近い数の環境変数が表示されるのですが、一部を割愛しています。

 SET 環境変数名(省略または先頭部分のみも可)

 C:\>set
 CommonProgramFiles=C:\Program Files\Common Files
 COMPUTERNAME=VAIO
 ComSpec=C:\WINNT\system32\cmd.exe
 HOMEDRIVE=C:
 HOMEPATH=\
 OS=Windows_NT
 Path=C:\Perl\bin;C:\JUST\BIN;C:\WINNT\system32;C:\WINNT;
 PROCESSOR_ARCHITECTURE=x86
 ProgramFiles=C:\Program Files
 PROMPT=$P$G
 SystemDrive=C:
 SystemRoot=C:\WINNT
 TEMP=C:\DOCUME~1User_Name\LOCALS~1\Temp
 TMP=C:\DOCUME~1\User_Name\LOCALS~1\Temp
 windir=C:\WINNT

 C:\>set c      ← C で始まる変数のみ表示します
 CommonProgramFiles=C:\Program Files\Common Files
 COMPUTERNAME=VAIO
 ComSpec=C:\WINNT\system32\cmd.exe

 C:\>


変数名を見れば、何を示す文字列であるかおよそ察しがつくでしょう。
実行ファイル検索パス文字列は、環境変数 PATH に格納されています。 PATH コマンドは、この環境変数を書き換えるコマンドである、と言っていい と思います。
プロンプトの文字列は、環境変数 PROMPT に格納されています。
一時ファイルが作成されるディレクトリは、TEMP, TMPにあります。
OS の値を参照することで、OSの種類がわかります。


11−2  環境変数を参照する

環境変数は、各アプリケーションが内部的に参照するだけでなく、DOS窓でも 便利に利用できます。コマンドラインまたはバッチファイルの中で環境変数を 参照するには、変数名を % で挟みます。
第6章において、検索パス文字列に新しいパス名を追加するのに、
  PATH = %PATH%;検索パス文字列
というコマンドを実行したのは、PATH 環境変数の参照だったのです。
Windowsシステムファイルが入っているドライブ(システムドライブ)とディレクトリ (システムディレクトリ)は、OSの種類、システム構成などによって異なります。
WindowsNT/2000 では C:\WINNTWindows9x 系WindowsXP では C:\WINDOWS であることが多いと思います。

◆ Windows2000 ◆

 C:\>CD %windir%

 C:\WINNT>        ← Windowsディレクトリに移動

◆ Windows9x, WindowsXP ◆

 C:\>CD %windir%

 C:\WINDOWS>      ← Windowsディレクトリに移動


この環境変数の便利さは、バッチ処理において存分にいかされます。
下のバッチファイルは、システムが Windows9x系でも Windows2000/XP でも システムディレクトリへの移動を完了できます。
wcd.bat−メモ帳
ファイル(F) 編集(E) 書式(O) ヘルプ(H)
 CD %WINDIR%
 IF EXIST win.ini type win.ini



11−3  環境変数を設定する

一部の環境変数は、ユーザーによって値を変更することも可能です。
また、ユーザーが新しい環境変数を設置することや削除することも可能です。

 SET 環境変数名 =
 SET 環境変数名 =    (環境変数を削除します)

 C:\>set test=D:\test\renshu     ← 環境変数 test を設定

 C:\>copy d:\test\*.txt %test%
 d:\test\all.txt
 d:\test\test.txt
 d:\test\test2.txt
 d:\test\test3.txt
         4 個のファイルをコピーしました。

 C:\>


DOS窓のプロンプトから行った値の変更や新規作成は、DOS窓を閉じた時点で 無効となってしまいます。
DOS窓を起動した時に設定されている初期値そのものを変更したい時は、
◆Windows9x 系  … AUTOEXEC.BAT SET コマンドを記述しておく。
◆WindowsME    … システム設定ユーティリティ→[環境]タブ
◆Windows2000/XP … システムのプロパティ→[詳細]タブ→[環境変数]