環境変数へのアクセス

Windowsが提供する環境変数には、Windowsアプリケーションなどからアクセスすることもできますし、本稿で扱うバッチファイルからでも利用できます。環境変数の設定に基づいて動作を変更することで、よりプログラム的なバッチファイルを作成できます。バッチファイルで環境変数を値として利用するには、次のように変数名を%で囲みます。

%変数名%

これを、コマンドのパラメータなどで指定することで、変数の値を画面に表示するといったことができるようになります。存在しない変数を参照した場合は、空の文字列と同じ結果が得られます。

環境変数ダイアログに表示されない動的な変数に、日付を表すDATE変数と、時間を表すTIME変数といったものも存在します。これらは、事前に設定された値ではなく、変数として参照した時点の日付や時刻を表します。

環境変数の名前は、大文字と小文字を区別しません。DATE変数の参照は%DATE%でも%Date%でも、または%dATe%でも成功します。

サンプル01

@echo off
echo OS=%OS%
echo 現在時刻=%DATE% %TIME%
pause

実行結果

サンプル01の実行結果

サンプル01は、OSの種類を表すOS環境変数の値と、現在の日付と時刻を表すDATE変数およびTIME変数の値をechoコマンドで表示します。DATEやTIMEのような動的な環境変数は、この他にも現在のカレントディレクトリを表すCD変数や、乱数を返すRANDOMなどが存在します。

ちなみに、echoコマンドなどで%という記号を表示するときには、上記の環境変数の参照が行われてしまうので注意が必要です。100%というような文字列や%OS%というな環境変数の名前をechoで表示させるには%記号を2つ続けます。例えば、次のようなコード

echo %%OS%%=%OS%

を実行すると"%OS%=Windows_NT"というような結果を得られます。