技術資料やトラブル・シューティング情報を読んでいると「%windir%」や「%username%」などの記述をよく見かけます。これは何ですか。

 windirやusernameは「環境変数」と呼ばれ,OSのバージョンやコンピュータの名前など,マシンごとに固有の情報を文字列として保持しています。例えば,windir変数にはWindowsのインストールされているディレクトリ(フォルダ)名が,usernameにはログオンしているユーザー自身のユーザー名がそれぞれ格納されています。

 多くの環境変数はレジストリに保存されていますが,バッチ・ファイルやWSH(Windows Script Host)のスクリプトから簡単に参照できます。変数名を「%」でくくるのは,その変数に格納された値をコマンド・プロンプトやバッチ・ファイルから参照する際の記法です。

 環境変数は,何らかの処理を環境に依存しない形で記述したいときによく利用されます。例えば,WindowsがデフォルトでインストールされるディレクトリはC:\WINNTやC:\WINDOWSなど,バージョンによって異なります。1台のコンピュータに複数のバージョンがインストールされていれば両方存在することもあり得ます。こういった場合,バッチ・ファイルなどの中で特定のディレクトリ名を指定する代わりに「%windir%」と書くことで,常にその時稼働しているWindowsのディレクトリを操作できます。

 デフォルトで設定されている環境変数のうち主なものをにまとめました。環境変数は[システムのプロパティ]の中でユーザーが定義することも可能で,コマンド・ベースのツールの中には環境変数を使って各種設定を行うものもあります。

(日経Windowsプロ編集)

表:主な環境変数
このうちDATE変数やRANDOM変数はOSではなくコマンド・プロンプト(cmd.exe)が生成。ほかにも標準の環境変数が多数設定されている。