В чем разница между
SETX
иSET
?
Согласно моему пониманию:
Оба используются для установки переменных среды
SETX
для пользовательских переменных.
SET
для переменных оболочки.
В чем разница между
SETX
иSET
?
Согласно моему пониманию:
Оба используются для установки переменных среды
SETX
для пользовательских переменных.
SET
для переменных оболочки.
Боюсь, не все так просто. Как вы предполагаете, переменные среды не ограничены областью действия, но вы правы в том, что при сравнении глаголов время жизни значения в переменной отличается.
Set
изменяет текущие значения среды оболочки (окна), и изменение доступно сразу, но оно временно. Изменение не повлияет на другие запущенные оболочки, и как только вы закроете оболочку, новое значение будет потеряно до тех пор, пока вы не запустите set.
setx
постоянно изменяет значение, которое влияет на все будущие оболочки, но не изменяет среду уже работающих оболочек. Вы должны выйти из оболочки и открыть ее еще до того, как изменения станут доступны, но значение останется неизменным, пока вы не измените его снова.
Смотрите здесь для примера: http://batcheero.blogspot.com/2008/02/set-and-setx.html
На самом деле мы можем установить переменную в трех областях:
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 Пользовательские и Системные переменные среды.
Добавление точки, которая была упущена другими ответчиками.
Чтобы установить переменную системной среды, а не переменную пользовательской среды, нам просто нужно использовать параметр /m в команде setx и запустить ее из командной строки с повышенными правами (администратора).
setx variable value /m
Пример: откройте командную строку от имени администратора и запустите
setx Path "%Path%;C:\Users\User\Libs" /m
Объяснение: Приведенная выше команда добавит «C:\Users\User\Libs» к уже существующей переменной пути (системная переменная среды).
Без аргумента /m он будет вносить изменения или создавать только переменную уровня пользователя.
Из руководства пользователя setx,
/M Указывает, что переменная должна быть установлена в общесистемной (HKEY_LOCAL_MACHINE) среде. По умолчанию переменная устанавливается в среде HKEY_CURRENT_USER.