回答:
それほど単純ではないのではないかと思います。環境変数は、お勧めのようにスコープによって制限されませんが、動詞を比較するとき、変数の値の有効期間が異なることは正しいことです。
Set
現在のシェル(ウィンドウ)の環境値を変更します。変更はすぐに有効になりますが、一時的なものです。変更は、実行中の他のシェルには影響しません。シェルを閉じるとすぐに、setを再度実行するまで新しい値は失われます。
setx
値を永続的に変更します。これは将来のすべてのシェルに影響しますが、すでに実行されているシェルの環境は変更しません。変更を有効にする前に、シェルを終了して再度開く必要がありますが、値は再度変更するまで変更されたままになります。
例についてはこちらをご覧ください:http : //batcheero.blogspot.com/2008/02/set-and-setx.html
実際には、3つのスコープで変数を設定でき
ます。1.シェル
2.ユーザー
3.システム(マシン)またはグローバル
C:\Users\977246>set /?
Displays, sets, or removes cmd.exe environment variables.
SET [variable=[string]]
variable Specifies the environment-variable name.
string Specifies a series of characters to assign to the variable.
Type SET without parameters to display the current environment variables.
C:\Users\977246>setx /?
SetX has three ways of working:
Syntax 1:
SETX [/S system [/U [domain\]user [/P [password]]]] var value [/M]
Syntax 2:
SETX [/S system [/U [domain\]user [/P [password]]]] var /K regpath [/M]
Syntax 3:
SETX [/S system [/U [domain\]user [/P [password]]]]
/F file {var {/A x,y | /R x,y string}[/M] | /X} [/D delimiters]
Description:
Creates or modifies environment variables in the user or system
environment. Can set variables based on arguments, regkeys or
file input.
To remove the variable set value to empty string as follows
Example: setx path ""
GUIユーザーおよびシステム環境変数。
他の回答者が見逃したポイントを追加します。
ユーザー環境変数ではなくシステム環境変数を設定するには、setxコマンドで/ mオプションを使用し、昇格した(管理者)コマンドプロンプトから実行するだけです。
setx variable value /m
例:管理者としてコマンドプロンプトを開き、実行します
setx Path "%Path%;C:\Users\User\Libs" /m
説明:上記のコマンドは、既存のパス変数(システム環境変数)に「C:\ Users \ User \ Libs」を追加します。
なければ/ m個の引数は、に変更を加えるか、のみユーザーレベルのPath変数を作成します。
setxユーザーマニュアルから、
/ Mシステム全体(HKEY_LOCAL_MACHINE)環境で変数を設定することを指定します。デフォルトでは、HKEY_CURRENT_USER環境で変数を設定します。
SET /?
とSETX /?
あなたにいくつかのアイデアを与えるべきです- 。