Windows 10 環境変数の設定と反映する方法

はじめに

Windows10 で環境変数の設定と反映する方法を紹介します。

検索ボックスから環境変数の編集を開くか、コマンドプロンプトや PowerShell から設定できます。値はレジストリに保存されます。

システム環境変数を設定するには管理者権限がないと編集できません。

設定が反映されるのは各プログラムが再起動されたときです。確実なのは Windows の再起動後です。

Path を設定する方法も紹介します。

  • 目次
    • 環境変数画面から設定する
    • コマンドプロンプトから設定する
    • PowerShell から設定する
    • 設定が反映されるタイミング

環境変数画面から設定する

値を元に戻せるようにコピーしておくのをオススメします。下記の「設定が反映されるタイミング」にレジストリに保存されている場所を記載しているので、それをエクスポートすると簡単です。

検索ボックスに環境変数と入力します。

10

「システム環境変数の編集」をクリックしたときは [環境変数] をクリックします。

2

どちらの方法でも環境変数を編集する画面が表示されます。表示されている値は使用時の値です。編集をクリックすると生の値を表示できます。

管理者ならすべての値を編集できますが、標準ユーザーはユーザー環境変数のみ編集できます。

編集するには [新規] をクリックするか、[環境変数] を選択してから [編集] や [削除] をクリックします。

3

[変数名] と [変数値] を入力して [OK] をクリックします。

変数値に複数の値を設定するには;で区切って値1;値2の形式で入力します。他の環境変数を参照するには%環境変数名%のように入力します。

4

編集されたので [OK] をクリックします。

5

環境変数が保存されました。設定が反映されるタイミングについては下記の「設定が反映されるタイミング」をご覧ください。

Path を設定

環境変数の %Path% は;区切りで複数の値を設定できます。

環境変数画面からユーザー環境変数の [Path] を選択して [編集] をクリックします。

11

[新規] をクリックして [値] を入力します。入力したら [OK] をクリックします。

12

環境変数画面でも [OK] をクリックします。

入力した値が自動で ; 区切りで設定されます。%Path% は特殊でシステム;ユーザーのようにシステムとユーザーが結合して、システムの値が先に参照されます。

コマンドプロンプトから設定する

コマンドプロンプトに次のように入力して設定できます。コマンドや変数名に大文字と小文字の区別はありません。

変数名 Name に値 Value を設定するにはSETX Name Valueを入力して Enter キーを入力します。

6

環境変数が設定されました。

7

値に別の環境変数を使用するにはSETX Name ^%USERNAME^%のように変数名を^%で囲みます。

PowerShell から設定する

PowerShell に次のように入力して設定できます。コマンドや変数名に大文字と小文字の区別はありません。

変数名 Name に値 Value を設定するには[Environment]::SetEnvironmentVariable('Name', 'Value', 'User')を入力して Enter キーを入力します。

8

環境変数が設定されました。

9

値に別の環境変数を使用するにはそのまま[Environment]::SetEnvironmentVariable('Name', '%USERNAME%', 'User')のように%で変数名を囲みます。

設定が反映されるタイミング

環境変数画面で [OK] をクリックした時や、コマンドプロンプトなどからコマンドを実行した時点でレジストリに保存されます。しかし環境変数は各プログラムの起動時に取得しているため、既に起動中のプログラムには反映されません。それを再起動すると反映されますが、バックグラウンドで動作しているもには反映されません。

確実に反映させるには Windows を再起動します。

環境変数はレジストリの次の場所に保存されています。

ユーザー環境変数:
HKEY_CURRENT_USER\Environment
システム環境変数:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

反映されないとき

環境変数の優先順位は「プロセス」>「ユーザー」>「システム」の順になっています。同じ名前の環境変数があるときは、優先度の高いものを使用します。%USERPROFILE% のように保存されていないものは、すべてプロセスです。

そのため %USERPROFILE% をユーザーやシステムの環境変数に追加しても使用時には必ずプロセスの環境変数で上書きされ、反映されていないように見えます。

  • 目次
    • 環境変数画面から設定する
    • コマンドプロンプトから設定する
    • PowerShell から設定する
    • 設定が反映されるタイミング