環境変数の設定(追加・変更・削除)に際して、set
コマンドでの一時的な設定や、設定画面から行う永続的な設定など、設定方法によってそれらが反映される範囲が異なります。それぞれの詳細は以下のページで個別に記載していますが、ここでは特に環境変数の設定が反映される範囲という点に絞って整理していきます。
set
による一時的な設定についてsetx
や設定画面での永続的な設定について一時的に設定された環境変数の参照可能範囲
set
コマンドによる一時的な設定の場合、環境変数の設定はそのコマンドプロンプト内でのみ有効となります。コマンドプロンプトを終了すると全ての変更は破棄されます。

start
コマンドを使用すると、新しく別のコマンドプロンプトを起動することができます。この時、start
コマンドによって起動したコマンドプロンプトでは、set
コマンドによる環境変数の設定が引き継がれます。元のコマンドプロンプトを終了した場合も、start
コマンドによって起動されたコマンドプロンプト内では設定が維持され、これを終了するまで破棄されません。

一時的な設定
set
コマンドで設定を行ったコマンドプロンプト内でのみ有効start
コマンドで起動したコマンドプロンプト内でも参照可能
永続的に設定された環境変数の参照可能範囲
永続的な設定の場合、設定が完了した後に起動した全てのコマンドプロンプトから参照が可能になります。設定の完了後とは、CUIの場合はsetx
コマンド実行後、GUIの場合は設定画面で[OK]ボタン押下によりウィンドウを閉じた後のことを指します。
永続設定の確定後に起動した全てのコマンドプロンプトで有効
- 永続設定の確定
- CUIの場合 →
setx
コマンド実行後 - GUIの場合 → 設定画面の[OK]ボタン押下後
- CUIの場合 →
設定が完了した後に”起動した”コマンドプロンプトで有効となるため、CUIで設定する場合、setx
コマンドを実行したコマンドプロンプト内では変更が反映されない点に注意が必要です。set
コマンドと比較すると以下のようになります。
コマンド | 1. 元々起動していたコマンドプロンプト | 2. 現在のコマンドプロンプト | 3. 新しく起動したコマンドプロンプト |
---|---|---|---|
set | × 反映されない | ○ 反映される | × 反映されない |
setx | × 反映されない | × 反映されない | ○ 反映される |

また永続設定の場合、ユーザー環境変数とシステム環境変数の違いもあります。ユーザー環境変数として永続設定をした場合は、設定を行ったユーザーのみ参照可能となり、システム環境変数として永続設定をした場合は、全てのユーザーから参照可能となります。システム環境変数の設定には管理者権限が必要です。

設定画面から行った場合も同様です。ユーザー環境変数の欄にはログイン中のユーザーのユーザー環境変数のみが表示されることになります。

永続的な設定
setx
コマンドで設定した場合- 同じコマンドプロンプト内で設定は反映されない
- 実行後に起動したコマンドプロンプトで参照可能
- 環境変数設定画面で設定した場合
- 設定の確定([OK]押下)後に起動したコマンドプロンプトで参照可能
- ユーザー環境変数
- 環境変数を設定したユーザーアカウントのみ参照可能
- システム環境変数
- PC内の全てのユーザーアカウントが参照可能