¿Cuál es la diferencia entre
SETX
ySET
?
Según tengo entendido:
ambos se utilizan para establecer variables de entorno
SETX
para las variables de usuario.
SET
es para variables de shell.
¿Cuál es la diferencia entre
SETX
ySET
?
Según tengo entendido:
ambos se utilizan para establecer variables de entorno
SETX
para las variables de usuario.
SET
es para variables de shell.
Respuestas:
Me temo que no es tan simple. Las variables de entorno no están limitadas por el alcance, como sugiere, pero tiene razón en que la vida útil del valor en la variable es diferente al comparar los verbos.
Set
modifica los valores de entorno del shell actual (la ventana) y el cambio está disponible de inmediato, pero es temporal. El cambio no afectará a otros shells que se están ejecutando, y tan pronto como cierre el shell, el nuevo valor se perderá hasta el momento en que ejecute set de nuevo.
setx
modifica el valor de forma permanente, lo que afecta a todos los shells futuros, pero no modifica el entorno de los shells que ya se están ejecutando. Debe salir del shell y volver a abrirlo antes de que el cambio esté disponible, pero el valor permanecerá modificado hasta que lo cambie nuevamente.
Vea aquí un ejemplo: http://batcheero.blogspot.com/2008/02/set-and-setx.html
En realidad, podemos establecer variables en tres ámbitos:
1. Shell
2. Usuario
3. Sistema (Máquina) o Global
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 ""
En usuario GUI y variables de entorno del sistema.
Añadiendo un punto que otros respondedores no vieron.
Para establecer una Variable de entorno del sistema en lugar de una Variable de entorno del usuario, solo necesitamos usar la opción / m en el comando setx y ejecutarla desde un Símbolo del sistema elevado (Administrador).
setx variable value /m
Ejemplo: abrir el símbolo del sistema como administrador y ejecutar
setx Path "%Path%;C:\Users\User\Libs" /m
Explicación: El comando anterior agregará "C: \ Users \ User \ Libs" a la variable de ruta ya existente (variable de entorno del sistema).
Sin el argumento / m , solo hará cambios o creará una variable de ruta de nivel de usuario.
Del manual de usuario de setx,
/ M Especifica que la variable debe establecerse en el entorno de todo el sistema (HKEY_LOCAL_MACHINE). El valor predeterminado es establecer la variable en el entorno HKEY_CURRENT_USER.
SET /?
ySETX /?
, eso debería darte algunas ideas.