SETX
とSET
はどう違いますか?
私の理解に従って:
両方とも環境変数を設定するために使用されますSETX
はユーザー変数用です。SET
はシェル変数用です。
それほど単純ではないと思います。ご存知のように、環境変数は範囲によって制限されませんが、動詞を比較すると、変数内の値の存続期間が異なることは間違いありません。
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環境で変数を設定します。