setx

Crea o modifica variables de entorno en el entorno de usuario o sistema sin necesidad de programación ni scripting. El comando Setx también recupera los valores de las claves del registro y los escribe en archivos de texto.

Nota:

Este comando proporciona la única forma de línea de comandos o de programación para establecer de forma directa y permanente los valores de entorno del sistema. Las variables de entorno del sistema se pueden configurar manualmente a través del panel de control o a través de un editor del registro. El comando set, que es interno para el intérprete de comandos (Cmd.exe), establece solo variables de entorno de usuario para la ventana de consola actual.

Sintaxis

setx [/s <computer> [/u [<domain>\]<user name> [/p [<password>]]]] <variable> <value> [/m]
setx [/s <computer> [/u [<domain>\]<user name> [/p [<password>]]]] <variable>] /k <path> [/m]
setx [/s <computer> [/u [<domain>\]<user name> [/p [<password>]]]] /f <filename> {[<variable>] {/a <X>,<Y> | /r <X>,<Y> <String>} [/m] | /x} [/d <delimiters>]

Parámetros

Parámetro Descripción
/s <computer> Especifica el nombre o la dirección IP de un equipo remoto. No use barras diagonales inversas. El valor predeterminado es el equipo local.
/u [<domain>\]<user name> Ejecuta el script con las credenciales de la cuenta de usuario especificada. El valor predeterminado son los permisos del sistema.
/p [<password>] Especifica la contraseña de la cuenta de usuario especificada en el parámetro /u.
<variable> Especifica el nombre de la variable de entorno que desea establecer.
<value> Especifica el valor al que desea establecer la variable de entorno.
/k <path> Especifica que la variable se establece en función de la información de una clave del registro. La ruta de acceso usa la siguiente sintaxis: \\<HIVE>\<KEY>\...\<Value>. Por ejemplo, puede especificar la siguiente ruta de acceso: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation\StandardName
/f <filename> Especifica el archivo que desea usar.
/a <X>,<Y> Especifica coordenadas absolutas y desplazamiento como parámetros de búsqueda.
/r <X>,<Y> <String> Especifica las coordenadas relativas y el desplazamiento de String como parámetros de búsqueda.
/m Especifica cómo establecer la variable en el entorno del sistema. La configuración predeterminada es el entorno local.
/x Muestra las coordenadas de archivo, e ignora las opciones de línea de comandos /a, /r y /d.
/d <delimiters> Especifica delimitadores como , o \ que se usarán además de los cuatro delimitadores integrados: SPACE, TAB, ENTER y LINEFEED. Los delimitadores válidos incluyen cualquier carácter ASCII. El número máximo de delimitadores es 15, incluidos los delimitadores integrados.
/? Muestra la ayuda en el símbolo del sistema.

Comentarios

  • Este comando es similar a la utilidad SETENV de UNIX.

  • Puede usar este comando para establecer valores para variables de entorno de usuario y sistema de uno de tres orígenes (modos): modo de línea de comandos, modo de registro o modo de archivo.

  • Este comando escribe variables en el entorno maestro del registro. Las variables establecidas con variables setx solo están disponibles en las ventanas de comandos futuras, no en la ventana de comandos actual.

  • HKEY_CURRENT_USER y HKEY_LOCAL_MACHINE son los únicos subárboles admitidos. REG_DWORD, REG_EXPAND_SZ, REG_SZ y REG_MULTI_SZ son los tipos de datos RegKey válidos.

  • Si obtiene acceso a valores del registro REG_MULTI_SZ, solo se extrae y usa el primer elemento.

  • No puede usar este comando para quitar los valores agregados a los entornos locales o del sistema. Puede usar este comando con un nombre de variable y ningún valor para quitar un valor correspondiente del entorno local.

  • Los valores del registro REG_DWORD se extraen y se usan en modo hexadecimal.

  • El modo de archivo solo admite el análisis de archivos de texto de retorno de carro y avance de línea (CRLF).

  • Al ejecutar este comando en una variable existente, se quitan las referencias de variable y se usan valores expandidos.

    Por ejemplo, si la variable %PATH% tiene una referencia a %JAVADIR%, y %PATH% se manipula mediante setx, %JAVADIR% se expande y su valor se asigna directamente a la variable de destino %PATH%. Esto significa que las actualizaciones futuras de %JAVADIR% no se reflejarán en la variable %PATH%.

  • Tenga en cuenta que hay un límite de 1024 caracteres al asignar contenido a una variable mediante setx.

    Esto significa que el contenido se recorta si supera los 1024 caracteres y que el texto recortado es lo que se aplica a la variable de destino. Si este texto recortado se aplica a una variable existente, puede provocar la pérdida de datos mantenidos anteriormente por la variable de destino.

Ejemplos

Para establecer la variable de entorno MACHINE en el entorno local en el valor Brand1, escriba:

setx MACHINE Brand1

Para establecer la variable de entorno MACHINE en el entorno del sistema en el valor Brand1 Computer, escriba:

setx MACHINE Brand1 Computer /m

Para establecer la variable de entorno MYPATH en el entorno local para usar la ruta de acceso de búsqueda definida en la variable de entorno PATH, escriba:

setx MYPATH %PATH%

Para establecer la variable de entorno MYPATH en el entorno local para usar la ruta de acceso de búsqueda definida en la variable de entorno PATH después de reemplazar ~ por %, escriba:

setx MYPATH ~PATH~

Para establecer la variable de entorno MACHINE en el entorno local en Brand1 en un equipo remoto denominado computer1, escriba:

setx /s computer1 /u maindom\hiropln /p p@ssW23 MACHINE Brand1

Para establecer la variable de entorno MYPATH en el entorno local para usar la ruta de acceso de búsqueda definida en la variable de entorno PATH en un equipo remoto denominado computer1, escriba:

setx /s computer1 /u maindom\hiropln /p p@ssW23 MYPATH %PATH%

Para establecer la variable de entorno TZONE en el entorno local en el valor que se encuentra en la clave del registro deHKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation\StandardName, escriba:

setx TZONE /k HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation\StandardName

Para establecer la variable de entorno TZONE en el entorno local de un equipo remoto denominado computer1 en el valor que se encuentra en la clave del registro deHKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation\StandardName, escriba:

setx /s computer1 /u maindom\hiropln /p p@ssW23 TZONE /k HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation\StandardName

Para establecer la variable de entorno BUILD en el entorno del sistema en el valor que se encuentra en la clave del registro deHKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\CurrentBuildNumber, escriba:

setx BUILD /k HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\CurrentBuildNumber /m

Para establecer la variable de entorno BUILD en el entorno del sistema de un equipo remoto denominado Computer1 en el valor que se encuentra en la clave del registro deHKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\CurrentBuildNumber, escriba:

setx /s computer1 /u maindom\hiropln /p p@ssW23  BUILD /k HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\CurrentBuildNumber /m

Para mostrar el contenido de un archivo denominado Ipconfig.out, junto con las coordenadas correspondientes del contenido, escriba:

setx /f ipconfig.out /x

Para establecer la variable de entorno IPADDR en el entorno local en el valor que se encuentra en la coordenada 5,11 del archivo Ipconfig.out, escriba:

setx IPADDR /f ipconfig.out /a 5,11

Para establecer la variable de entorno OCTET1 en el entorno local en el valor que se encuentra en la coordenada 5,3 del archivo Ipconfig.out con delimitadores #$*., escriba:

setx OCTET1 /f ipconfig.out /a 5,3 /d #$*.

Para establecer la variable de entorno IPGATEWAY en el entorno local en el valor que se encuentra en la coordenada 0,7 con respecto a la coordenada de Puerta de enlace en el archivo Ipconfig.out, escriba:

setx IPGATEWAY /f ipconfig.out /r 0,7 Gateway

Para mostrar el contenido del archivo Ipconfig.out, junto con las coordenadas correspondientes del contenido, en un equipo denominado computer1, escriba:

setx /s computer1 /u maindom\hiropln /p p@ssW23 /f ipconfig.out /x