更新日:、 作成日:
Windows 10 環境変数の設定と反映する方法
はじめに
Windows10 で環境変数の設定と反映する方法を紹介します。
検索ボックスから 環境変数の編集 を開くか、コマンドプロンプトや PowerShell から設定できます。値はレジストリに保存されます。
システム環境変数を設定するには管理者権限がないと編集できません。
設定が反映されるのは各プログラムが再起動されたときです。確実なのは Windows の再起動後です。
Path を設定する方法も紹介します。
環境変数画面から設定する
検索ボックスに 環境変数 と入力します。
- 管理者:[システム環境変数の編集] をクリックします。
- 標準ユーザー:[環境変数を編集] をクリックします。
「システム環境変数の編集」をクリックしたときは [環境変数] をクリックします。
どちらの方法でも環境変数を編集する画面が表示されます。表示されている値は使用時の値です。編集をクリックすると生の値を表示できます。
管理者ならすべての値を編集できますが、標準ユーザーはユーザー環境変数のみ編集できます。
編集するには [新規] をクリックするか、[環境変数] を選択してから [編集] や [削除] をクリックします。
[変数名] と [変数値] を入力して [OK] をクリックします。
変数値に複数の値を設定するには ; で区切って 値1;値2 の形式で入力します。他の環境変数を参照するには %環境変数名% のように入力します。
編集されたので [OK] をクリックします。
環境変数が保存されました。設定が反映されるタイミングについては下記の「設定が反映されるタイミング」をご覧ください。
Path を設定
環境変数の %Path% は ; 区切りで複数の値を設定できます。
環境変数画面からユーザー環境変数の [Path] を選択して [編集] をクリックします。
[新規] をクリックして [値] を入力します。入力したら [OK] をクリックします。
環境変数画面でも [OK] をクリックします。
入力した値が自動で ; 区切りで設定されます。%Path% は特殊で システム;ユーザー のようにシステムとユーザーが結合して、システムの値が先に参照されます。
スポンサーリンク
コマンドプロンプトから設定する
コマンドプロンプトに次のように入力して設定できます。コマンドや変数名に大文字と小文字の区別はありません。
- ユーザー環境変数:SETX 変数名 値
- システム環境変数:SETX 変数名 値 /M コマンドプロンプトを管理者として実行する必要があります。
変数名 Name に値 Value を設定するには SETX Name Value を入力して Enter キーを入力します。
環境変数が設定されました。
値に別の環境変数を使用するには SETX Name ^%USERNAME^% のように変数名を ^% で囲みます。
PowerShell から設定する
PowerShell に次のように入力して設定できます。コマンドや変数名に大文字と小文字の区別はありません。
- ユーザー環境変数:[Environment]::SetEnvironmentVariable('変数名', '値', 'User')
- システム環境変数:[Environment]::SetEnvironmentVariable('変数名', '値', 'Machine') PowerShell を管理者として実行する必要があります。
変数名 Name に値 Value を設定するには [Environment]::SetEnvironmentVariable('Name', 'Value', 'User') を入力して Enter キーを入力します。
環境変数が設定されました。
値に別の環境変数を使用するにはそのまま [Environment]::SetEnvironmentVariable('Name', '%USERNAME%', 'User') のように % で変数名を囲みます。
設定が反映されるタイミング
環境変数画面で [OK] をクリックした時や、コマンドプロンプトなどからコマンドを実行した時点でレジストリに保存されます。しかし環境変数は各プログラムの起動時に取得しているため、既に起動中のプログラムには反映されません。それを再起動すると反映されますが、バックグラウンドで動作しているものには反映されません。
確実に反映させるには Windows を再起動します。
環境変数はレジストリの次の場所に保存されています。
HKEY_CURRENT_USER\Environment
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
反映されないとき
環境変数の優先順位は「プロセス」>「ユーザー」>「システム」の順になっています。同じ名前の環境変数があるときは、優先度の高いものを使用します。%USERPROFILE% のように保存されていないものは、すべてプロセスです。
そのため %USERPROFILE% をユーザーやシステムの環境変数に追加しても使用時には必ずプロセスの環境変数で上書きされ、反映されていないように見えます。
スポンサーリンク