普通にPCを利用していると触ることのないまま終わる方も多いですが、プログラミングに興味があったりIT関係の業務に就いていると、環境変数はしばしばお世話になる存在です。
今回は、自動アップデートからまだ慣れない方も多いWindows10における環境変数の設定について解説します。
1. 環境変数とは?
1.1 環境変数とは
環境変数(environment variabl)とは簡単にいうと、OSに設定を保存するためのシステム変数のことです。Windowsの場合は大きく分けて2種類あり、システム環境変数(systemroot)とユーザー環境変数(userprofile)があります。
システム環境変数には、そのPCを利用する全ユーザが共有して利用する値が記録されています。一方のユーザ環境変数には、各ユーザ毎の個別の設定が記録されています。よく使う環境変数にはプログラムのインストール場所を表している「Path」や、一時保存ファイルの保管場所などが記録されている「TEMP」などがありますが、これらはシステム環境変数にもユーザ環境変数にも存在します。つまり全ユーザに変更の影響を与えたければシステム環境変数の「Path」や「TEMP」を、与えたくなければユーザ環境変数の同項目を変更するというような使い分けができるというわけです。
1.2 ユーザー環境変数のデフォルト値
ユーザー環境変数(userprofile)は、デフォルトで2種類存在します。
TEMP | %USERPROFILE%\AppData\Local\Temp |
---|---|
TMP | %USERPROFILE%\AppData\Local\Temp |
1.3 システム境変数のデフォルト値
システム環境変数(systemroot)には、初期設定で14種類が存在します。そのデフォルトの設定値は、次表のようになっています。なお値は「表示」時のものではなく、「編集」時のものを使用しています。
ComSpec | %SystemRoot%\system32\cmd.exe |
---|---|
NUMBER_OF_PROCESSORS | ※論理プロセッサ数(スレッド数)により異なる |
OS | Windows_NT |
Path |
%SystemRoot%\system32; %SystemRoot%; %SystemRoot%\System32\Wbem; %SYSTEMROOT%\System32\WindowsPowerShell\v1.0\ |
PathEXT | .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC |
PROCESSOR_ARCHITECTURE | ※OSのビット数により異なる(32bit:x86、64bit:AMD64) |
PROCESSOR_IDENTIFIER | ※CPUの種類により異なる |
PROCESSOR_LEVEL | ※CPUの種類により異なる |
PROCESSOR_REVISION | ※CPUの種類により異なる |
PSModulePath | %ProgramFiles%\WindowsPowerShell\Modules; %SystemRoot%\system32\WindowsPowerShell\v1.0\Modules |
TEMP | %SystemRoot%\TEMP |
TMP | %SystemRoot%\TEMP |
USERNAME | SYSTEM |
windir | %SystemRoot% |
2. 環境変数に関するよくあるエラー
2.1「パスを通す」とは「Path」を設定すること
プログラミング環境を作っている時などによく耳にする「パスを設定する=パスを通す」とは、環境変数のうち1つである「Path」を設定するということです。
「'●●●’は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません。」
上記のエラーが発生する場合、この「Path」が正しく設定できていない可能性があります。実行したいプログラムの保存場所が「Path」の中にに含まれていない若しくは間違っている場合は、その保存場所のアドレスを「Path」に追加または修正することで、エラーを回避できるようになります。
◆Java環境構築時のパス設定例◆
「Path」には、そのPCのjdkをインストールした場所のフルパスを指定します。そのため環境により差はありますが、次のような設定を追加するようになります。
「C:\Program Files\Java\jdk1.X.X_XXX\bin」
2.2「作業ファイルを作成できません」の原因は「TEMP」
Microsoft Office製品などを利用している際に、ファイルを保存しようとすると次のようなエラーが発生することがあります。
「作業ファイルを作成できません。環境変数 TEMP の設定を確認してください」
このエラーは作業用の一時ファイルをどこに保存すればいいか正しく設定できていない場合に発生し、その保存場所は環境変数「TEMP」に設定されています。他のソフトウェアをインストールした際に設定が書き換わってしまったなどの可能性がありますので、確認してみて下さい。変わっている場合、後述するデフォルト値に修正すればエラーが解消されるかもしれません。
3. 環境変数の設定(コントロールパネルから行う場合)
3.1 環境変数一覧の確認とショートカット
現在設定されている環境変数の一覧は、「システムの詳細設定」から確認可能です。Windows10の場合、次の2つのルートで画面遷移することで表示することができます。
なおシステム画面はショートカットキー([Windows]キー+[Pause/Break]キー)で起動することも可能です。
・「コントロールパネル>システム>システムの詳細設定」
・「スタートボタン右クリック>システム>システムの詳細設定」
3.2 環境変数の新規・編集(追加・修正)・削除
環境変数の設定画面には図のように、ユーザ環境変数とシステム環境変数それぞれに「新規」「編集」「削除」のボタンが用意されています。
(1)「新規」ボタン
「新規」ボタンは、新たな環境変数の追加に使用します。
入力フォームに変数名と設定値を入力してOKボタンを押すと、追加が反映されます。
(2)「編集」ボタン
「編集」ボタンは、すでにある環境変数に値を追加したり、修正したりする場合に使用します。
変更したい変数を選択して「編集」ボタンを押すと入力フォームが表示されますので、必要な値を追記したり、変更になったものに修正を加えたりすることができます。値を追加する場合は、半角セミコロン「;」を区切り文字とし、末尾に書き加えます。
「削除」ボタン
変更したい変数を選択して「削除」ボタンを押すと、該当する変数が削除されます。
3.3 環境変数の反映タイミングと再起動
環境変数の反映タイミングは、OKボタンを押すと即時です。OSの再起動は必要ありません。ただしその環境変数を使用するアプリケーションが立ち上がっている状態の場合、アプリケーション自体に反映させるためにはアプリケーションを一旦終了し再度立ち上げる必要があります。
4. 環境変数の設定(コマンドプロンプトから行う場合)
4.1 環境変数一覧の確認
コマンドプロンプトで環境変数を確認する場合は、「set」コマンドを使用します。
set [検索文字列]
「set」の後に半角スペースを空けて文字列(一文字でもOK)を入力すると、その文字列から始まる変数名のもののみが抜粋して表示されます。例えば「set T」と入力すると、Tから始まる環境変数「TEMP」と「TMP」が抜粋して表示されます。
3.2 環境変数の新規・編集(追加・修正)・削除
環境変数に変更を加える場合も、同じ「set」または「setx」コマンドを使用します。
set [変数名]=[設定文字列]
setx [変数名] [設定文字列]
3.3 環境変数の反映タイミングと再起動
「set」と「setx」の大きな違いは、変更タイミングです。「set」は実行した直後からそのプロセス内で有効になりますが、プロセスを終了すると変更が破棄されてしまいます。
対して「setx」はすぐには有効にはなりませんが、プロセスを再起動すると反映されていることが確認できます。この「setx」を使用して設定した感興変数は、PCを再起動しても設定されたまま、破棄されることはありません。
設定を実行した直後は、「set」を使って設定した「TEST」のみが反映されています。
コマンドプロンプトを再起動すると、「TEST」が消えて「setx」を使った「TEST2」が反映されています。
コントロールパネルから確認しても、反映されたまま残っています。
5. 環境変数の編集は慎重に
環境変数の編集は誤ると思いがけないところに影響があります。特に「システムの詳細設定」から修正する場合、削除にあたり確認画面などは表示されません。ボタンを押した瞬間に一発で消去されてしまいますので、間違えないよう慎重に作業するよう気を付けて下さいね。
当サイトプロエンジニアのコンサルタントが厳選したおすすめのフリーランス案件特集はこちら
特集ページから案件への応募も可能です!
実際にフリーランスエンジニアとして活躍されている方のインタビューはこちら